<!DOCTYPE html>
<html>
<head><meta name="generator" content="Hexo 3.8.0">
  <meta charset="utf-8">
  

  
  <title>wiki</title>
  <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
  <meta name="description" content="just like a wiki">
<meta name="keywords" content="wiki">
<meta property="og:type" content="website">
<meta property="og:title" content="wiki">
<meta property="og:url" content="https://jpcui.github.io/wiki/index.html">
<meta property="og:site_name" content="wiki">
<meta property="og:description" content="just like a wiki">
<meta property="og:locale" content="default">
<meta name="twitter:card" content="summary">
<meta name="twitter:title" content="wiki">
<meta name="twitter:description" content="just like a wiki">
  
    <link rel="alternate" href="/wiki/atom.xml" title="wiki" type="application/atom+xml">
  
  
    <link rel="icon" href="/favicon.png">
  
  
    <link href="//fonts.googleapis.com/css?family=Source+Code+Pro" rel="stylesheet" type="text/css">
  
  <link rel="stylesheet" href="//cdn.bootcss.com/font-awesome/4.3.0/css/font-awesome.min.css">
  <link rel="stylesheet" href="/wiki/css/style.css">
</head>
</html>
<body>
  <div id="container">
    <div id="wrap">
      <header id="header">
    <div id="banner"></div>
    <div id="header-outer" class="outer">
        <div id="header-title" class="inner">
            <h1 id="logo-wrap">
                <a href="/wiki/" id="logo">wiki</a>
            </h1>
            
                <h2 id="subtitle-wrap">
                    <a href="/wiki/" id="subtitle">just like a wiki</a>
                </h2>
            
        </div>
        <div id="header-inner" class="inner">
            <nav id="main-nav">
                <a id="main-nav-toggle" class="nav-icon"></a>
                
                    <a class="main-nav-link" href="/wiki/">Home</a>
                
                    <a class="main-nav-link" href="/wiki/archives">Archives</a>
                
            </nav>
            <nav id="sub-nav">
                
                    <a id="nav-rss-link" class="nav-icon" href="/wiki/atom.xml" title="RSS Feed"></a>
                
                <a id="nav-search-btn" class="nav-icon" title="Search"></a>
            </nav>
            <div id="search-form-wrap">
                <form action="//google.com/search" method="get" accept-charset="UTF-8" class="search-form"><input type="search" name="q" class="search-form-input" placeholder="Search"><button type="submit" class="search-form-submit">&#xF002;</button><input type="hidden" name="sitesearch" value="https://jpcui.github.io/wiki"></form>
            </div>
        </div>
    </div>
</header>
      <div class="outer">
        <section id="main">
  
    <article id="post-todolist" class="article article-type-post" itemscope="" itemprop="blogPost">
    <div class="article-meta">
        <div class="left">
            <a href="/wiki/2019/02/12/todolist/" class="article-date">
  <time datetime="2019-02-12T12:29:57.954Z" itemprop="datePublished">2019-02-12</time>
</a>
            
        </div>
        <div class="right">
            <span class="article-date right">
                <i class="fa fa-comments">
                    <a href="https://github.com/JPCui/wiki/issues/new" target="_blank" class="widget-title">issue</a>
                </i>
                <i class="fa fa-eye">
                    <span id="busuanzi_value_page_pv"></span>
                </i>
            </span>
        </div>
    </div>
    <div class="article-inner">
        
        
            <header class="article-header">
                
    
        <h1 itemprop="name">
            <a class="article-title" href="/wiki/2019/02/12/todolist/">
                todolist
            </a>
            
                <i title="置顶" style="color: gold;">🔝</i>
            
        </h1>
    

            </header>
        
        <div class="article-entry" itemprop="articleBody">
            
                <ul>
<li><p>BASE理论，CAP，AICD</p>
<p><a href="https://www.baidu.com/s?ie=UTF-8&amp;wd=BASE%E6%A8%A1%E5%9E%8B" target="_blank" rel="noopener">https://www.baidu.com/s?ie=UTF-8&amp;wd=BASE%E6%A8%A1%E5%9E%8B</a></p>
</li>
<li><p>网关</p>
</li>
<li><p>注册中心</p>
</li>
<li><p>服务发现组件</p>
</li>
<li><p>服务调用</p>
<ul>
<li><p>负责服务间调用</p>
</li>
<li><p>客户端负载均衡</p>
</li>
</ul>
</li>
<li><p>服务容错</p>
<ul>
<li><p>客户端容错</p>
</li>
<li><p>服务端容错</p>
</li>
</ul>
</li>
</ul>

            
        </div>
        <footer class="article-footer">
            <a data-url="https://jpcui.github.io/wiki/2019/02/12/todolist/" data-id="cjs5isuzf0000iuui4nq5dhen" class="article-share-link">Share</a>
            
            
        </footer>
    </div>
    
</article>


  
    <article id="post-【spring-boot】application.properties" class="article article-type-post" itemscope="" itemprop="blogPost">
    <div class="article-meta">
        <div class="left">
            <a href="/wiki/2018/11/05/【spring-boot】application.properties/" class="article-date">
  <time datetime="2018-11-05T07:11:52.000Z" itemprop="datePublished">2018-11-05</time>
</a>
            
        </div>
        <div class="right">
            <span class="article-date right">
                <i class="fa fa-comments">
                    <a href="https://github.com/JPCui/wiki/issues/new" target="_blank" class="widget-title">issue</a>
                </i>
                <i class="fa fa-eye">
                    <span id="busuanzi_value_page_pv"></span>
                </i>
            </span>
        </div>
    </div>
    <div class="article-inner">
        
        
            <header class="article-header">
                
    
        <h1 itemprop="name">
            <a class="article-title" href="/wiki/2018/11/05/【spring-boot】application.properties/">
                【spring-boot】application.properties
            </a>
            
        </h1>
    

            </header>
        
        <div class="article-entry" itemprop="articleBody">
            
                <figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br><span class="line">64</span><br><span class="line">65</span><br><span class="line">66</span><br><span class="line">67</span><br><span class="line">68</span><br><span class="line">69</span><br><span class="line">70</span><br><span class="line">71</span><br><span class="line">72</span><br><span class="line">73</span><br><span class="line">74</span><br><span class="line">75</span><br><span class="line">76</span><br><span class="line">77</span><br><span class="line">78</span><br><span class="line">79</span><br><span class="line">80</span><br><span class="line">81</span><br><span class="line">82</span><br><span class="line">83</span><br><span class="line">84</span><br><span class="line">85</span><br><span class="line">86</span><br><span class="line">87</span><br><span class="line">88</span><br><span class="line">89</span><br><span class="line">90</span><br><span class="line">91</span><br><span class="line">92</span><br><span class="line">93</span><br><span class="line">94</span><br><span class="line">95</span><br><span class="line">96</span><br><span class="line">97</span><br><span class="line">98</span><br><span class="line">99</span><br><span class="line">100</span><br><span class="line">101</span><br><span class="line">102</span><br><span class="line">103</span><br><span class="line">104</span><br><span class="line">105</span><br><span class="line">106</span><br><span class="line">107</span><br><span class="line">108</span><br><span class="line">109</span><br><span class="line">110</span><br><span class="line">111</span><br><span class="line">112</span><br><span class="line">113</span><br><span class="line">114</span><br><span class="line">115</span><br><span class="line">116</span><br><span class="line">117</span><br><span class="line">118</span><br><span class="line">119</span><br><span class="line">120</span><br><span class="line">121</span><br><span class="line">122</span><br><span class="line">123</span><br><span class="line">124</span><br><span class="line">125</span><br><span class="line">126</span><br><span class="line">127</span><br><span class="line">128</span><br><span class="line">129</span><br><span class="line">130</span><br><span class="line">131</span><br><span class="line">132</span><br><span class="line">133</span><br><span class="line">134</span><br><span class="line">135</span><br><span class="line">136</span><br><span class="line">137</span><br><span class="line">138</span><br><span class="line">139</span><br><span class="line">140</span><br><span class="line">141</span><br><span class="line">142</span><br><span class="line">143</span><br><span class="line">144</span><br><span class="line">145</span><br><span class="line">146</span><br><span class="line">147</span><br><span class="line">148</span><br><span class="line">149</span><br><span class="line">150</span><br><span class="line">151</span><br><span class="line">152</span><br><span class="line">153</span><br><span class="line">154</span><br><span class="line">155</span><br><span class="line">156</span><br><span class="line">157</span><br><span class="line">158</span><br><span class="line">159</span><br><span class="line">160</span><br><span class="line">161</span><br><span class="line">162</span><br><span class="line">163</span><br><span class="line">164</span><br><span class="line">165</span><br><span class="line">166</span><br><span class="line">167</span><br><span class="line">168</span><br><span class="line">169</span><br><span class="line">170</span><br><span class="line">171</span><br><span class="line">172</span><br><span class="line">173</span><br><span class="line">174</span><br><span class="line">175</span><br><span class="line">176</span><br><span class="line">177</span><br><span class="line">178</span><br><span class="line">179</span><br><span class="line">180</span><br><span class="line">181</span><br><span class="line">182</span><br><span class="line">183</span><br><span class="line">184</span><br><span class="line">185</span><br><span class="line">186</span><br><span class="line">187</span><br><span class="line">188</span><br><span class="line">189</span><br><span class="line">190</span><br><span class="line">191</span><br><span class="line">192</span><br><span class="line">193</span><br><span class="line">194</span><br><span class="line">195</span><br><span class="line">196</span><br><span class="line">197</span><br><span class="line">198</span><br><span class="line">199</span><br><span class="line">200</span><br><span class="line">201</span><br><span class="line">202</span><br><span class="line">203</span><br><span class="line">204</span><br><span class="line">205</span><br><span class="line">206</span><br><span class="line">207</span><br><span class="line">208</span><br><span class="line">209</span><br><span class="line">210</span><br><span class="line">211</span><br><span class="line">212</span><br><span class="line">213</span><br><span class="line">214</span><br><span class="line">215</span><br><span class="line">216</span><br><span class="line">217</span><br><span class="line">218</span><br><span class="line">219</span><br><span class="line">220</span><br><span class="line">221</span><br><span class="line">222</span><br><span class="line">223</span><br><span class="line">224</span><br><span class="line">225</span><br><span class="line">226</span><br><span class="line">227</span><br><span class="line">228</span><br><span class="line">229</span><br><span class="line">230</span><br><span class="line">231</span><br><span class="line">232</span><br><span class="line">233</span><br><span class="line">234</span><br><span class="line">235</span><br><span class="line">236</span><br><span class="line">237</span><br><span class="line">238</span><br><span class="line">239</span><br><span class="line">240</span><br><span class="line">241</span><br><span class="line">242</span><br><span class="line">243</span><br><span class="line">244</span><br><span class="line">245</span><br><span class="line">246</span><br><span class="line">247</span><br><span class="line">248</span><br><span class="line">249</span><br><span class="line">250</span><br><span class="line">251</span><br><span class="line">252</span><br><span class="line">253</span><br><span class="line">254</span><br><span class="line">255</span><br><span class="line">256</span><br><span class="line">257</span><br><span class="line">258</span><br><span class="line">259</span><br><span class="line">260</span><br><span class="line">261</span><br><span class="line">262</span><br><span class="line">263</span><br><span class="line">264</span><br><span class="line">265</span><br><span class="line">266</span><br><span class="line">267</span><br><span class="line">268</span><br><span class="line">269</span><br><span class="line">270</span><br><span class="line">271</span><br><span class="line">272</span><br><span class="line">273</span><br><span class="line">274</span><br><span class="line">275</span><br><span class="line">276</span><br><span class="line">277</span><br><span class="line">278</span><br><span class="line">279</span><br><span class="line">280</span><br><span class="line">281</span><br><span class="line">282</span><br><span class="line">283</span><br><span class="line">284</span><br><span class="line">285</span><br><span class="line">286</span><br><span class="line">287</span><br><span class="line">288</span><br><span class="line">289</span><br><span class="line">290</span><br><span class="line">291</span><br><span class="line">292</span><br><span class="line">293</span><br><span class="line">294</span><br><span class="line">295</span><br><span class="line">296</span><br><span class="line">297</span><br><span class="line">298</span><br><span class="line">299</span><br><span class="line">300</span><br><span class="line">301</span><br><span class="line">302</span><br><span class="line">303</span><br><span class="line">304</span><br><span class="line">305</span><br><span class="line">306</span><br><span class="line">307</span><br><span class="line">308</span><br><span class="line">309</span><br><span class="line">310</span><br><span class="line">311</span><br><span class="line">312</span><br><span class="line">313</span><br><span class="line">314</span><br><span class="line">315</span><br><span class="line">316</span><br><span class="line">317</span><br><span class="line">318</span><br><span class="line">319</span><br><span class="line">320</span><br><span class="line">321</span><br><span class="line">322</span><br><span class="line">323</span><br><span class="line">324</span><br><span class="line">325</span><br><span class="line">326</span><br><span class="line">327</span><br><span class="line">328</span><br><span class="line">329</span><br><span class="line">330</span><br><span class="line">331</span><br><span class="line">332</span><br><span class="line">333</span><br><span class="line">334</span><br><span class="line">335</span><br><span class="line">336</span><br><span class="line">337</span><br><span class="line">338</span><br><span class="line">339</span><br><span class="line">340</span><br><span class="line">341</span><br><span class="line">342</span><br><span class="line">343</span><br><span class="line">344</span><br><span class="line">345</span><br><span class="line">346</span><br><span class="line">347</span><br><span class="line">348</span><br><span class="line">349</span><br><span class="line">350</span><br><span class="line">351</span><br><span class="line">352</span><br><span class="line">353</span><br><span class="line">354</span><br><span class="line">355</span><br><span class="line">356</span><br><span class="line">357</span><br><span class="line">358</span><br><span class="line">359</span><br><span class="line">360</span><br><span class="line">361</span><br><span class="line">362</span><br><span class="line">363</span><br><span class="line">364</span><br><span class="line">365</span><br><span class="line">366</span><br><span class="line">367</span><br><span class="line">368</span><br><span class="line">369</span><br><span class="line">370</span><br><span class="line">371</span><br><span class="line">372</span><br><span class="line">373</span><br><span class="line">374</span><br><span class="line">375</span><br><span class="line">376</span><br><span class="line">377</span><br><span class="line">378</span><br><span class="line">379</span><br><span class="line">380</span><br><span class="line">381</span><br><span class="line">382</span><br><span class="line">383</span><br><span class="line">384</span><br><span class="line">385</span><br><span class="line">386</span><br><span class="line">387</span><br><span class="line">388</span><br><span class="line">389</span><br><span class="line">390</span><br><span class="line">391</span><br><span class="line">392</span><br><span class="line">393</span><br><span class="line">394</span><br><span class="line">395</span><br><span class="line">396</span><br><span class="line">397</span><br><span class="line">398</span><br><span class="line">399</span><br><span class="line">400</span><br><span class="line">401</span><br><span class="line">402</span><br><span class="line">403</span><br><span class="line">404</span><br><span class="line">405</span><br><span class="line">406</span><br><span class="line">407</span><br><span class="line">408</span><br><span class="line">409</span><br><span class="line">410</span><br><span class="line">411</span><br><span class="line">412</span><br><span class="line">413</span><br><span class="line">414</span><br><span class="line">415</span><br><span class="line">416</span><br><span class="line">417</span><br><span class="line">418</span><br><span class="line">419</span><br><span class="line">420</span><br><span class="line">421</span><br><span class="line">422</span><br><span class="line">423</span><br><span class="line">424</span><br><span class="line">425</span><br><span class="line">426</span><br><span class="line">427</span><br><span class="line">428</span><br><span class="line">429</span><br><span class="line">430</span><br><span class="line">431</span><br><span class="line">432</span><br><span class="line">433</span><br><span class="line">434</span><br><span class="line">435</span><br><span class="line">436</span><br><span class="line">437</span><br><span class="line">438</span><br><span class="line">439</span><br><span class="line">440</span><br><span class="line">441</span><br><span class="line">442</span><br><span class="line">443</span><br><span class="line">444</span><br><span class="line">445</span><br><span class="line">446</span><br><span class="line">447</span><br><span class="line">448</span><br><span class="line">449</span><br><span class="line">450</span><br><span class="line">451</span><br><span class="line">452</span><br><span class="line">453</span><br><span class="line">454</span><br><span class="line">455</span><br><span class="line">456</span><br><span class="line">457</span><br><span class="line">458</span><br><span class="line">459</span><br><span class="line">460</span><br><span class="line">461</span><br><span class="line">462</span><br><span class="line">463</span><br><span class="line">464</span><br><span class="line">465</span><br><span class="line">466</span><br><span class="line">467</span><br><span class="line">468</span><br><span class="line">469</span><br><span class="line">470</span><br><span class="line">471</span><br><span class="line">472</span><br><span class="line">473</span><br><span class="line">474</span><br><span class="line">475</span><br><span class="line">476</span><br><span class="line">477</span><br><span class="line">478</span><br><span class="line">479</span><br><span class="line">480</span><br><span class="line">481</span><br><span class="line">482</span><br><span class="line">483</span><br><span class="line">484</span><br><span class="line">485</span><br><span class="line">486</span><br><span class="line">487</span><br><span class="line">488</span><br><span class="line">489</span><br><span class="line">490</span><br><span class="line">491</span><br><span class="line">492</span><br><span class="line">493</span><br><span class="line">494</span><br><span class="line">495</span><br><span class="line">496</span><br><span class="line">497</span><br><span class="line">498</span><br><span class="line">499</span><br><span class="line">500</span><br><span class="line">501</span><br><span class="line">502</span><br><span class="line">503</span><br><span class="line">504</span><br><span class="line">505</span><br><span class="line">506</span><br><span class="line">507</span><br><span class="line">508</span><br><span class="line">509</span><br><span class="line">510</span><br><span class="line">511</span><br><span class="line">512</span><br><span class="line">513</span><br><span class="line">514</span><br><span class="line">515</span><br><span class="line">516</span><br><span class="line">517</span><br><span class="line">518</span><br><span class="line">519</span><br><span class="line">520</span><br><span class="line">521</span><br><span class="line">522</span><br><span class="line">523</span><br><span class="line">524</span><br><span class="line">525</span><br><span class="line">526</span><br><span class="line">527</span><br><span class="line">528</span><br><span class="line">529</span><br><span class="line">530</span><br><span class="line">531</span><br><span class="line">532</span><br><span class="line">533</span><br><span class="line">534</span><br><span class="line">535</span><br><span class="line">536</span><br><span class="line">537</span><br><span class="line">538</span><br><span class="line">539</span><br><span class="line">540</span><br><span class="line">541</span><br><span class="line">542</span><br><span class="line">543</span><br><span class="line">544</span><br><span class="line">545</span><br><span class="line">546</span><br><span class="line">547</span><br><span class="line">548</span><br><span class="line">549</span><br><span class="line">550</span><br><span class="line">551</span><br><span class="line">552</span><br><span class="line">553</span><br><span class="line">554</span><br><span class="line">555</span><br><span class="line">556</span><br><span class="line">557</span><br><span class="line">558</span><br><span class="line">559</span><br><span class="line">560</span><br><span class="line">561</span><br><span class="line">562</span><br><span class="line">563</span><br><span class="line">564</span><br><span class="line">565</span><br><span class="line">566</span><br><span class="line">567</span><br><span class="line">568</span><br><span class="line">569</span><br><span class="line">570</span><br><span class="line">571</span><br><span class="line">572</span><br><span class="line">573</span><br><span class="line">574</span><br><span class="line">575</span><br><span class="line">576</span><br><span class="line">577</span><br><span class="line">578</span><br><span class="line">579</span><br><span class="line">580</span><br><span class="line">581</span><br><span class="line">582</span><br><span class="line">583</span><br><span class="line">584</span><br><span class="line">585</span><br><span class="line">586</span><br><span class="line">587</span><br><span class="line">588</span><br><span class="line">589</span><br><span class="line">590</span><br><span class="line">591</span><br><span class="line">592</span><br><span class="line">593</span><br><span class="line">594</span><br><span class="line">595</span><br><span class="line">596</span><br><span class="line">597</span><br><span class="line">598</span><br><span class="line">599</span><br><span class="line">600</span><br><span class="line">601</span><br><span class="line">602</span><br><span class="line">603</span><br><span class="line">604</span><br><span class="line">605</span><br><span class="line">606</span><br><span class="line">607</span><br><span class="line">608</span><br><span class="line">609</span><br><span class="line">610</span><br><span class="line">611</span><br><span class="line">612</span><br><span class="line">613</span><br><span class="line">614</span><br><span class="line">615</span><br><span class="line">616</span><br><span class="line">617</span><br><span class="line">618</span><br><span class="line">619</span><br><span class="line">620</span><br><span class="line">621</span><br><span class="line">622</span><br><span class="line">623</span><br><span class="line">624</span><br><span class="line">625</span><br><span class="line">626</span><br><span class="line">627</span><br><span class="line">628</span><br><span class="line">629</span><br><span class="line">630</span><br><span class="line">631</span><br><span class="line">632</span><br><span class="line">633</span><br><span class="line">634</span><br><span class="line">635</span><br><span class="line">636</span><br><span class="line">637</span><br><span class="line">638</span><br><span class="line">639</span><br><span class="line">640</span><br><span class="line">641</span><br><span class="line">642</span><br><span class="line">643</span><br><span class="line">644</span><br><span class="line">645</span><br><span class="line">646</span><br><span class="line">647</span><br><span class="line">648</span><br><span class="line">649</span><br><span class="line">650</span><br><span class="line">651</span><br><span class="line">652</span><br><span class="line">653</span><br><span class="line">654</span><br><span class="line">655</span><br><span class="line">656</span><br><span class="line">657</span><br><span class="line">658</span><br><span class="line">659</span><br><span class="line">660</span><br><span class="line">661</span><br><span class="line">662</span><br><span class="line">663</span><br><span class="line">664</span><br><span class="line">665</span><br><span class="line">666</span><br><span class="line">667</span><br><span class="line">668</span><br><span class="line">669</span><br><span class="line">670</span><br><span class="line">671</span><br><span class="line">672</span><br><span class="line">673</span><br><span class="line">674</span><br><span class="line">675</span><br><span class="line">676</span><br><span class="line">677</span><br><span class="line">678</span><br><span class="line">679</span><br><span class="line">680</span><br><span class="line">681</span><br><span class="line">682</span><br><span class="line">683</span><br><span class="line">684</span><br><span class="line">685</span><br><span class="line">686</span><br><span class="line">687</span><br><span class="line">688</span><br><span class="line">689</span><br><span class="line">690</span><br><span class="line">691</span><br><span class="line">692</span><br><span class="line">693</span><br><span class="line">694</span><br><span class="line">695</span><br><span class="line">696</span><br><span class="line">697</span><br><span class="line">698</span><br><span class="line">699</span><br><span class="line">700</span><br><span class="line">701</span><br><span class="line">702</span><br><span class="line">703</span><br><span class="line">704</span><br><span class="line">705</span><br><span class="line">706</span><br><span class="line">707</span><br><span class="line">708</span><br><span class="line">709</span><br><span class="line">710</span><br><span class="line">711</span><br><span class="line">712</span><br><span class="line">713</span><br><span class="line">714</span><br><span class="line">715</span><br><span class="line">716</span><br><span class="line">717</span><br><span class="line">718</span><br><span class="line">719</span><br><span class="line">720</span><br><span class="line">721</span><br><span class="line">722</span><br><span class="line">723</span><br><span class="line">724</span><br><span class="line">725</span><br><span class="line">726</span><br><span class="line">727</span><br><span class="line">728</span><br><span class="line">729</span><br><span class="line">730</span><br><span class="line">731</span><br><span class="line">732</span><br><span class="line">733</span><br><span class="line">734</span><br><span class="line">735</span><br><span class="line">736</span><br><span class="line">737</span><br><span class="line">738</span><br><span class="line">739</span><br><span class="line">740</span><br><span class="line">741</span><br><span class="line">742</span><br><span class="line">743</span><br><span class="line">744</span><br><span class="line">745</span><br><span class="line">746</span><br><span class="line">747</span><br><span class="line">748</span><br><span class="line">749</span><br><span class="line">750</span><br><span class="line">751</span><br><span class="line">752</span><br><span class="line">753</span><br><span class="line">754</span><br><span class="line">755</span><br><span class="line">756</span><br><span class="line">757</span><br><span class="line">758</span><br><span class="line">759</span><br><span class="line">760</span><br><span class="line">761</span><br><span class="line">762</span><br><span class="line">763</span><br><span class="line">764</span><br><span class="line">765</span><br><span class="line">766</span><br><span class="line">767</span><br><span class="line">768</span><br><span class="line">769</span><br><span class="line">770</span><br><span class="line">771</span><br><span class="line">772</span><br><span class="line">773</span><br><span class="line">774</span><br><span class="line">775</span><br><span class="line">776</span><br><span class="line">777</span><br><span class="line">778</span><br><span class="line">779</span><br><span class="line">780</span><br><span class="line">781</span><br><span class="line">782</span><br><span class="line">783</span><br><span class="line">784</span><br><span class="line">785</span><br><span class="line">786</span><br><span class="line">787</span><br><span class="line">788</span><br><span class="line">789</span><br><span class="line">790</span><br><span class="line">791</span><br><span class="line">792</span><br><span class="line">793</span><br><span class="line">794</span><br><span class="line">795</span><br><span class="line">796</span><br><span class="line">797</span><br><span class="line">798</span><br><span class="line">799</span><br><span class="line">800</span><br><span class="line">801</span><br><span class="line">802</span><br><span class="line">803</span><br><span class="line">804</span><br><span class="line">805</span><br><span class="line">806</span><br><span class="line">807</span><br><span class="line">808</span><br><span class="line">809</span><br><span class="line">810</span><br><span class="line">811</span><br><span class="line">812</span><br><span class="line">813</span><br><span class="line">814</span><br><span class="line">815</span><br><span class="line">816</span><br><span class="line">817</span><br><span class="line">818</span><br><span class="line">819</span><br><span class="line">820</span><br><span class="line">821</span><br><span class="line">822</span><br><span class="line">823</span><br><span class="line">824</span><br><span class="line">825</span><br><span class="line">826</span><br><span class="line">827</span><br><span class="line">828</span><br><span class="line">829</span><br><span class="line">830</span><br><span class="line">831</span><br><span class="line">832</span><br><span class="line">833</span><br><span class="line">834</span><br><span class="line">835</span><br><span class="line">836</span><br><span class="line">837</span><br><span class="line">838</span><br><span class="line">839</span><br><span class="line">840</span><br><span class="line">841</span><br><span class="line">842</span><br><span class="line">843</span><br><span class="line">844</span><br><span class="line">845</span><br><span class="line">846</span><br><span class="line">847</span><br><span class="line">848</span><br><span class="line">849</span><br><span class="line">850</span><br><span class="line">851</span><br><span class="line">852</span><br><span class="line">853</span><br><span class="line">854</span><br><span class="line">855</span><br><span class="line">856</span><br><span class="line">857</span><br><span class="line">858</span><br><span class="line">859</span><br><span class="line">860</span><br><span class="line">861</span><br><span class="line">862</span><br><span class="line">863</span><br><span class="line">864</span><br><span class="line">865</span><br><span class="line">866</span><br><span class="line">867</span><br><span class="line">868</span><br><span class="line">869</span><br><span class="line">870</span><br><span class="line">871</span><br><span class="line">872</span><br><span class="line">873</span><br><span class="line">874</span><br><span class="line">875</span><br><span class="line">876</span><br><span class="line">877</span><br><span class="line">878</span><br><span class="line">879</span><br><span class="line">880</span><br><span class="line">881</span><br><span class="line">882</span><br><span class="line">883</span><br><span class="line">884</span><br><span class="line">885</span><br><span class="line">886</span><br><span class="line">887</span><br><span class="line">888</span><br><span class="line">889</span><br><span class="line">890</span><br><span class="line">891</span><br><span class="line">892</span><br><span class="line">893</span><br><span class="line">894</span><br><span class="line">895</span><br><span class="line">896</span><br><span class="line">897</span><br><span class="line">898</span><br><span class="line">899</span><br><span class="line">900</span><br><span class="line">901</span><br><span class="line">902</span><br><span class="line">903</span><br><span class="line">904</span><br><span class="line">905</span><br><span class="line">906</span><br><span class="line">907</span><br><span class="line">908</span><br><span class="line">909</span><br><span class="line">910</span><br><span class="line">911</span><br><span class="line">912</span><br><span class="line">913</span><br><span class="line">914</span><br><span class="line">915</span><br><span class="line">916</span><br><span class="line">917</span><br><span class="line">918</span><br><span class="line">919</span><br><span class="line">920</span><br><span class="line">921</span><br><span class="line">922</span><br><span class="line">923</span><br><span class="line">924</span><br><span class="line">925</span><br><span class="line">926</span><br><span class="line">927</span><br><span class="line">928</span><br><span class="line">929</span><br><span class="line">930</span><br><span class="line">931</span><br><span class="line">932</span><br><span class="line">933</span><br><span class="line">934</span><br><span class="line">935</span><br><span class="line">936</span><br><span class="line">937</span><br><span class="line">938</span><br><span class="line">939</span><br><span class="line">940</span><br><span class="line">941</span><br><span class="line">942</span><br><span class="line">943</span><br><span class="line">944</span><br><span class="line">945</span><br><span class="line">946</span><br><span class="line">947</span><br><span class="line">948</span><br><span class="line">949</span><br><span class="line">950</span><br><span class="line">951</span><br><span class="line">952</span><br><span class="line">953</span><br><span class="line">954</span><br><span class="line">955</span><br><span class="line">956</span><br><span class="line">957</span><br><span class="line">958</span><br><span class="line">959</span><br><span class="line">960</span><br><span class="line">961</span><br><span class="line">962</span><br><span class="line">963</span><br><span class="line">964</span><br><span class="line">965</span><br><span class="line">966</span><br><span class="line">967</span><br><span class="line">968</span><br><span class="line">969</span><br><span class="line">970</span><br><span class="line">971</span><br><span class="line">972</span><br><span class="line">973</span><br><span class="line">974</span><br><span class="line">975</span><br><span class="line">976</span><br><span class="line">977</span><br><span class="line">978</span><br><span class="line">979</span><br><span class="line">980</span><br><span class="line">981</span><br><span class="line">982</span><br><span class="line">983</span><br><span class="line">984</span><br><span class="line">985</span><br><span class="line">986</span><br><span class="line">987</span><br><span class="line">988</span><br><span class="line">989</span><br><span class="line">990</span><br><span class="line">991</span><br><span class="line">992</span><br><span class="line">993</span><br><span class="line">994</span><br><span class="line">995</span><br><span class="line">996</span><br><span class="line">997</span><br><span class="line">998</span><br><span class="line">999</span><br><span class="line">1000</span><br><span class="line">1001</span><br><span class="line">1002</span><br><span class="line">1003</span><br><span class="line">1004</span><br><span class="line">1005</span><br><span class="line">1006</span><br><span class="line">1007</span><br><span class="line">1008</span><br><span class="line">1009</span><br><span class="line">1010</span><br><span class="line">1011</span><br><span class="line">1012</span><br><span class="line">1013</span><br><span class="line">1014</span><br><span class="line">1015</span><br><span class="line">1016</span><br><span class="line">1017</span><br><span class="line">1018</span><br><span class="line">1019</span><br><span class="line">1020</span><br><span class="line">1021</span><br><span class="line">1022</span><br><span class="line">1023</span><br><span class="line">1024</span><br><span class="line">1025</span><br><span class="line">1026</span><br><span class="line">1027</span><br><span class="line">1028</span><br><span class="line">1029</span><br><span class="line">1030</span><br><span class="line">1031</span><br><span class="line">1032</span><br><span class="line">1033</span><br><span class="line">1034</span><br><span class="line">1035</span><br><span class="line">1036</span><br><span class="line">1037</span><br><span class="line">1038</span><br><span class="line">1039</span><br><span class="line">1040</span><br><span class="line">1041</span><br><span class="line">1042</span><br><span class="line">1043</span><br><span class="line">1044</span><br><span class="line">1045</span><br><span class="line">1046</span><br><span class="line">1047</span><br><span class="line">1048</span><br><span class="line">1049</span><br><span class="line">1050</span><br><span class="line">1051</span><br><span class="line">1052</span><br><span class="line">1053</span><br><span class="line">1054</span><br><span class="line">1055</span><br><span class="line">1056</span><br><span class="line">1057</span><br><span class="line">1058</span><br><span class="line">1059</span><br><span class="line">1060</span><br><span class="line">1061</span><br><span class="line">1062</span><br><span class="line">1063</span><br><span class="line">1064</span><br><span class="line">1065</span><br><span class="line">1066</span><br><span class="line">1067</span><br><span class="line">1068</span><br><span class="line">1069</span><br><span class="line">1070</span><br><span class="line">1071</span><br><span class="line">1072</span><br><span class="line">1073</span><br><span class="line">1074</span><br><span class="line">1075</span><br><span class="line">1076</span><br><span class="line">1077</span><br><span class="line">1078</span><br><span class="line">1079</span><br><span class="line">1080</span><br><span class="line">1081</span><br><span class="line">1082</span><br><span class="line">1083</span><br><span class="line">1084</span><br><span class="line">1085</span><br><span class="line">1086</span><br><span class="line">1087</span><br><span class="line">1088</span><br><span class="line">1089</span><br><span class="line">1090</span><br><span class="line">1091</span><br><span class="line">1092</span><br><span class="line">1093</span><br><span class="line">1094</span><br><span class="line">1095</span><br><span class="line">1096</span><br><span class="line">1097</span><br><span class="line">1098</span><br><span class="line">1099</span><br><span class="line">1100</span><br><span class="line">1101</span><br><span class="line">1102</span><br><span class="line">1103</span><br><span class="line">1104</span><br><span class="line">1105</span><br><span class="line">1106</span><br><span class="line">1107</span><br><span class="line">1108</span><br><span class="line">1109</span><br><span class="line">1110</span><br><span class="line">1111</span><br><span class="line">1112</span><br><span class="line">1113</span><br><span class="line">1114</span><br><span class="line">1115</span><br><span class="line">1116</span><br><span class="line">1117</span><br><span class="line">1118</span><br><span class="line">1119</span><br><span class="line">1120</span><br><span class="line">1121</span><br><span class="line">1122</span><br><span class="line">1123</span><br><span class="line">1124</span><br><span class="line">1125</span><br><span class="line">1126</span><br><span class="line">1127</span><br><span class="line">1128</span><br><span class="line">1129</span><br><span class="line">1130</span><br><span class="line">1131</span><br><span class="line">1132</span><br><span class="line">1133</span><br><span class="line">1134</span><br><span class="line">1135</span><br><span class="line">1136</span><br><span class="line">1137</span><br><span class="line">1138</span><br><span class="line">1139</span><br><span class="line">1140</span><br><span class="line">1141</span><br><span class="line">1142</span><br><span class="line">1143</span><br><span class="line">1144</span><br><span class="line">1145</span><br><span class="line">1146</span><br><span class="line">1147</span><br><span class="line">1148</span><br><span class="line">1149</span><br><span class="line">1150</span><br><span class="line">1151</span><br><span class="line">1152</span><br><span class="line">1153</span><br><span class="line">1154</span><br><span class="line">1155</span><br><span class="line">1156</span><br><span class="line">1157</span><br><span class="line">1158</span><br><span class="line">1159</span><br><span class="line">1160</span><br><span class="line">1161</span><br><span class="line">1162</span><br><span class="line">1163</span><br><span class="line">1164</span><br><span class="line">1165</span><br><span class="line">1166</span><br><span class="line">1167</span><br><span class="line">1168</span><br><span class="line">1169</span><br></pre></td><td class="code"><pre><span class="line"></span><br><span class="line"># ===================================================================</span><br><span class="line"># COMMON SPRING BOOT PROPERTIES</span><br><span class="line">#</span><br><span class="line"># This sample file is provided as a guideline. Do NOT copy it in its</span><br><span class="line"># entirety to your own application.               ^^^</span><br><span class="line"># ===================================================================</span><br><span class="line"></span><br><span class="line"></span><br><span class="line"># ----------------------------------------</span><br><span class="line"># CORE PROPERTIES</span><br><span class="line"># ----------------------------------------</span><br><span class="line"></span><br><span class="line"># BANNER</span><br><span class="line">banner.charset=UTF-8 # Banner file encoding.</span><br><span class="line">banner.location=classpath:banner.txt # Banner file location.</span><br><span class="line">banner.image.location=classpath:banner.gif # Banner image file location (jpg/png can also be used).</span><br><span class="line">banner.image.width= # Width of the banner image in chars (default 76)</span><br><span class="line">banner.image.height= # Height of the banner image in chars (default based on image height)</span><br><span class="line">banner.image.margin= # Left hand image margin in chars (default 2)</span><br><span class="line">banner.image.invert= # If images should be inverted for dark terminal themes (default false)</span><br><span class="line"></span><br><span class="line"># LOGGING</span><br><span class="line">logging.config= # Location of the logging configuration file. For instance `classpath:logback.xml` for Logback</span><br><span class="line">logging.exception-conversion-word=%wEx # Conversion word used when logging exceptions.</span><br><span class="line">logging.file= # Log file name. For instance `myapp.log`</span><br><span class="line">logging.level.*= # Log levels severity mapping. For instance `logging.level.org.springframework=DEBUG`</span><br><span class="line">logging.path= # Location of the log file. For instance `/var/log`</span><br><span class="line">logging.pattern.console= # Appender pattern for output to the console. Only supported with the default logback setup.</span><br><span class="line">logging.pattern.file= # Appender pattern for output to the file. Only supported with the default logback setup.</span><br><span class="line">logging.pattern.level= # Appender pattern for log level (default %5p). Only supported with the default logback setup.</span><br><span class="line">logging.register-shutdown-hook=false # Register a shutdown hook for the logging system when it is initialized.</span><br><span class="line"></span><br><span class="line"># AOP</span><br><span class="line">spring.aop.auto=true # Add @EnableAspectJAutoProxy.</span><br><span class="line">spring.aop.proxy-target-class= # Whether subclass-based (CGLIB) proxies are to be created (true) as opposed to standard Java interface-based proxies (false). Defaults to &quot;true&quot; when using Spring Transaction Management, otherwise &quot;false&quot;.</span><br><span class="line"></span><br><span class="line"># IDENTITY (ContextIdApplicationContextInitializer)</span><br><span class="line">spring.application.index= # Application index.</span><br><span class="line">spring.application.name= # Application name.</span><br><span class="line"></span><br><span class="line"># ADMIN (SpringApplicationAdminJmxAutoConfiguration)</span><br><span class="line">spring.application.admin.enabled=false # Enable admin features for the application.</span><br><span class="line">spring.application.admin.jmx-name=org.springframework.boot:type=Admin,name=SpringApplication # JMX name of the application admin MBean.</span><br><span class="line"></span><br><span class="line"># AUTO-CONFIGURATION</span><br><span class="line">spring.autoconfigure.exclude= # Auto-configuration classes to exclude.</span><br><span class="line"></span><br><span class="line"># SPRING CORE</span><br><span class="line">spring.beaninfo.ignore=true # Skip search of BeanInfo classes.</span><br><span class="line"></span><br><span class="line"># SPRING CACHE (CacheProperties)</span><br><span class="line">spring.cache.cache-names= # Comma-separated list of cache names to create if supported by the underlying cache manager.</span><br><span class="line">spring.cache.caffeine.spec= # The spec to use to create caches. Check CaffeineSpec for more details on the spec format.</span><br><span class="line">spring.cache.couchbase.expiration=0 # Entry expiration in milliseconds. By default the entries never expire.</span><br><span class="line">spring.cache.ehcache.config= # The location of the configuration file to use to initialize EhCache.</span><br><span class="line">spring.cache.guava.spec= # The spec to use to create caches. Check CacheBuilderSpec for more details on the spec format.</span><br><span class="line">spring.cache.infinispan.config= # The location of the configuration file to use to initialize Infinispan.</span><br><span class="line">spring.cache.jcache.config= # The location of the configuration file to use to initialize the cache manager.</span><br><span class="line">spring.cache.jcache.provider= # Fully qualified name of the CachingProvider implementation to use to retrieve the JSR-107 compliant cache manager. Only needed if more than one JSR-107 implementation is available on the classpath.</span><br><span class="line">spring.cache.type= # Cache type, auto-detected according to the environment by default.</span><br><span class="line"></span><br><span class="line"># SPRING CONFIG - using environment property only (ConfigFileApplicationListener)</span><br><span class="line">spring.config.location= # Config file locations.</span><br><span class="line">spring.config.name=application # Config file name.</span><br><span class="line"></span><br><span class="line"># HAZELCAST (HazelcastProperties)</span><br><span class="line">spring.hazelcast.config= # The location of the configuration file to use to initialize Hazelcast.</span><br><span class="line"></span><br><span class="line"># PROJECT INFORMATION (ProjectInfoProperties)</span><br><span class="line">spring.info.build.location=classpath:META-INF/build-info.properties # Location of the generated build-info.properties file.</span><br><span class="line">spring.info.git.location=classpath:git.properties # Location of the generated git.properties file.</span><br><span class="line"></span><br><span class="line"># JMX</span><br><span class="line">spring.jmx.default-domain= # JMX domain name.</span><br><span class="line">spring.jmx.enabled=true # Expose management beans to the JMX domain.</span><br><span class="line">spring.jmx.server=mbeanServer # MBeanServer bean name.</span><br><span class="line"></span><br><span class="line"># Email (MailProperties)</span><br><span class="line">spring.mail.default-encoding=UTF-8 # Default MimeMessage encoding.</span><br><span class="line">spring.mail.host= # SMTP server host. For instance `smtp.example.com`</span><br><span class="line">spring.mail.jndi-name= # Session JNDI name. When set, takes precedence to others Session settings.</span><br><span class="line">spring.mail.password= # Login password of the SMTP server.</span><br><span class="line">spring.mail.port= # SMTP server port.</span><br><span class="line">spring.mail.properties.*= # Additional JavaMail Session properties.</span><br><span class="line">spring.mail.protocol=smtp # Protocol used by the SMTP server.</span><br><span class="line">spring.mail.test-connection=false # Test that the mail server is available on startup.</span><br><span class="line">spring.mail.username= # Login user of the SMTP server.</span><br><span class="line"></span><br><span class="line"># APPLICATION SETTINGS (SpringApplication)</span><br><span class="line">spring.main.banner-mode=console # Mode used to display the banner when the application runs.</span><br><span class="line">spring.main.sources= # Sources (class name, package name or XML resource location) to include in the ApplicationContext.</span><br><span class="line">spring.main.web-environment= # Run the application in a web environment (auto-detected by default).</span><br><span class="line"></span><br><span class="line"># FILE ENCODING (FileEncodingApplicationListener)</span><br><span class="line">spring.mandatory-file-encoding= # Expected character encoding the application must use.</span><br><span class="line"></span><br><span class="line"># INTERNATIONALIZATION (MessageSourceAutoConfiguration)</span><br><span class="line">spring.messages.always-use-message-format=false # Set whether to always apply the MessageFormat rules, parsing even messages without arguments.</span><br><span class="line">spring.messages.basename=messages # Comma-separated list of basenames (essentially a fully-qualified classpath location), each following the ResourceBundle convention with relaxed support for slash based locations.</span><br><span class="line">spring.messages.cache-seconds=-1 # Loaded resource bundle files cache expiration, in seconds. When set to -1, bundles are cached forever.</span><br><span class="line">spring.messages.encoding=UTF-8 # Message bundles encoding.</span><br><span class="line">spring.messages.fallback-to-system-locale=true # Set whether to fall back to the system Locale if no files for a specific Locale have been found.</span><br><span class="line"></span><br><span class="line"># OUTPUT</span><br><span class="line">spring.output.ansi.enabled=detect # Configure the ANSI output.</span><br><span class="line"></span><br><span class="line"># PID FILE (ApplicationPidFileWriter)</span><br><span class="line">spring.pid.fail-on-write-error= # Fail if ApplicationPidFileWriter is used but it cannot write the PID file.</span><br><span class="line">spring.pid.file= # Location of the PID file to write (if ApplicationPidFileWriter is used).</span><br><span class="line"></span><br><span class="line"># PROFILES</span><br><span class="line">spring.profiles.active= # Comma-separated list (or list if using YAML) of active profiles.</span><br><span class="line">spring.profiles.include= # Unconditionally activate the specified comma separated profiles (or list of profiles if using YAML).</span><br><span class="line"></span><br><span class="line"># SENDGRID (SendGridAutoConfiguration)</span><br><span class="line">spring.sendgrid.api-key= # SendGrid api key (alternative to username/password).</span><br><span class="line">spring.sendgrid.username= # SendGrid account username.</span><br><span class="line">spring.sendgrid.password= # SendGrid account password.</span><br><span class="line">spring.sendgrid.proxy.host= # SendGrid proxy host.</span><br><span class="line">spring.sendgrid.proxy.port= # SendGrid proxy port.</span><br><span class="line"></span><br><span class="line"></span><br><span class="line"># ----------------------------------------</span><br><span class="line"># WEB PROPERTIES</span><br><span class="line"># ----------------------------------------</span><br><span class="line"></span><br><span class="line"># EMBEDDED SERVER CONFIGURATION (ServerProperties)</span><br><span class="line">server.address= # Network address to which the server should bind to.</span><br><span class="line">server.compression.enabled=false # If response compression is enabled.</span><br><span class="line">server.compression.excluded-user-agents= # List of user-agents to exclude from compression.</span><br><span class="line">server.compression.mime-types=text/html,text/xml,text/plain,text/css,text/javascript,application/javascript # Comma-separated list of MIME types that should be compressed.</span><br><span class="line">server.compression.min-response-size=2048 # Minimum response size that is required for compression to be performed.</span><br><span class="line">server.connection-timeout= # Time in milliseconds that connectors will wait for another HTTP request before closing the connection. When not set, the connector&apos;s container-specific default will be used. Use a value of -1 to indicate no (i.e. infinite) timeout.</span><br><span class="line">server.context-parameters.*= # Servlet context init parameters. For instance `server.context-parameters.a=alpha`</span><br><span class="line">server.context-path= # Context path of the application.</span><br><span class="line">server.display-name=application # Display name of the application.</span><br><span class="line">server.max-http-header-size=0 # Maximum size in bytes of the HTTP message header.</span><br><span class="line">server.error.include-stacktrace=never # When to include a &quot;stacktrace&quot; attribute.</span><br><span class="line">server.error.path=/error # Path of the error controller.</span><br><span class="line">server.error.whitelabel.enabled=true # Enable the default error page displayed in browsers in case of a server error.</span><br><span class="line">server.jetty.acceptors= # Number of acceptor threads to use.</span><br><span class="line">server.jetty.max-http-post-size=0 # Maximum size in bytes of the HTTP post or put content.</span><br><span class="line">server.jetty.selectors= # Number of selector threads to use.</span><br><span class="line">server.jsp-servlet.class-name=org.apache.jasper.servlet.JspServlet # The class name of the JSP servlet.</span><br><span class="line">server.jsp-servlet.init-parameters.*= # Init parameters used to configure the JSP servlet</span><br><span class="line">server.jsp-servlet.registered=true # Whether or not the JSP servlet is registered</span><br><span class="line">server.port=8080 # Server HTTP port.</span><br><span class="line">server.server-header= # Value to use for the Server response header (no header is sent if empty)</span><br><span class="line">server.servlet-path=/ # Path of the main dispatcher servlet.</span><br><span class="line">server.use-forward-headers= # If X-Forwarded-* headers should be applied to the HttpRequest.</span><br><span class="line">server.session.cookie.comment= # Comment for the session cookie.</span><br><span class="line">server.session.cookie.domain= # Domain for the session cookie.</span><br><span class="line">server.session.cookie.http-only= # &quot;HttpOnly&quot; flag for the session cookie.</span><br><span class="line">server.session.cookie.max-age= # Maximum age of the session cookie in seconds.</span><br><span class="line">server.session.cookie.name= # Session cookie name.</span><br><span class="line">server.session.cookie.path= # Path of the session cookie.</span><br><span class="line">server.session.cookie.secure= # &quot;Secure&quot; flag for the session cookie.</span><br><span class="line">server.session.persistent=false # Persist session data between restarts.</span><br><span class="line">server.session.store-dir= # Directory used to store session data.</span><br><span class="line">server.session.timeout= # Session timeout in seconds.</span><br><span class="line">server.session.tracking-modes= # Session tracking modes (one or more of the following: &quot;cookie&quot;, &quot;url&quot;, &quot;ssl&quot;).</span><br><span class="line">server.ssl.ciphers= # Supported SSL ciphers.</span><br><span class="line">server.ssl.client-auth= # Whether client authentication is wanted (&quot;want&quot;) or needed (&quot;need&quot;). Requires a trust store.</span><br><span class="line">server.ssl.enabled= # Enable SSL support.</span><br><span class="line">server.ssl.enabled-protocols= # Enabled SSL protocols.</span><br><span class="line">server.ssl.key-alias= # Alias that identifies the key in the key store.</span><br><span class="line">server.ssl.key-password= # Password used to access the key in the key store.</span><br><span class="line">server.ssl.key-store= # Path to the key store that holds the SSL certificate (typically a jks file).</span><br><span class="line">server.ssl.key-store-password= # Password used to access the key store.</span><br><span class="line">server.ssl.key-store-provider= # Provider for the key store.</span><br><span class="line">server.ssl.key-store-type= # Type of the key store.</span><br><span class="line">server.ssl.protocol=TLS # SSL protocol to use.</span><br><span class="line">server.ssl.trust-store= # Trust store that holds SSL certificates.</span><br><span class="line">server.ssl.trust-store-password= # Password used to access the trust store.</span><br><span class="line">server.ssl.trust-store-provider= # Provider for the trust store.</span><br><span class="line">server.ssl.trust-store-type= # Type of the trust store.</span><br><span class="line">server.tomcat.accept-count= # Maximum queue length for incoming connection requests when all possible request processing threads are in use.</span><br><span class="line">server.tomcat.accesslog.buffered=true # Buffer output such that it is only flushed periodically.</span><br><span class="line">server.tomcat.accesslog.directory=logs # Directory in which log files are created. Can be relative to the tomcat base dir or absolute.</span><br><span class="line">server.tomcat.accesslog.enabled=false # Enable access log.</span><br><span class="line">server.tomcat.accesslog.file-date-format=.yyyy-MM-dd # Date format to place in log file name.</span><br><span class="line">server.tomcat.accesslog.pattern=common # Format pattern for access logs.</span><br><span class="line">server.tomcat.accesslog.prefix=access_log # Log file name prefix.</span><br><span class="line">server.tomcat.accesslog.rename-on-rotate=false # Defer inclusion of the date stamp in the file name until rotate time.</span><br><span class="line">server.tomcat.accesslog.request-attributes-enabled=false # Set request attributes for IP address, Hostname, protocol and port used for the request.</span><br><span class="line">server.tomcat.accesslog.rotate=true # Enable access log rotation.</span><br><span class="line">server.tomcat.accesslog.suffix=.log # Log file name suffix.</span><br><span class="line">server.tomcat.additional-tld-skip-patterns= # Comma-separated list of additional patterns that match jars to ignore for TLD scanning.</span><br><span class="line">server.tomcat.background-processor-delay=30 # Delay in seconds between the invocation of backgroundProcess methods.</span><br><span class="line">server.tomcat.basedir= # Tomcat base directory. If not specified a temporary directory will be used.</span><br><span class="line">server.tomcat.internal-proxies=10\\.\\d&#123;1,3&#125;\\.\\d&#123;1,3&#125;\\.\\d&#123;1,3&#125;|\\</span><br><span class="line">        192\\.168\\.\\d&#123;1,3&#125;\\.\\d&#123;1,3&#125;|\\</span><br><span class="line">        169\\.254\\.\\d&#123;1,3&#125;\\.\\d&#123;1,3&#125;|\\</span><br><span class="line">        127\\.\\d&#123;1,3&#125;\\.\\d&#123;1,3&#125;\\.\\d&#123;1,3&#125;|\\</span><br><span class="line">        172\\.1[6-9]&#123;1&#125;\\.\\d&#123;1,3&#125;\\.\\d&#123;1,3&#125;|\\</span><br><span class="line">        172\\.2[0-9]&#123;1&#125;\\.\\d&#123;1,3&#125;\\.\\d&#123;1,3&#125;|\\</span><br><span class="line">        172\\.3[0-1]&#123;1&#125;\\.\\d&#123;1,3&#125;\\.\\d&#123;1,3&#125; # regular expression matching trusted IP addresses.</span><br><span class="line">server.tomcat.max-connections= # Maximum number of connections that the server will accept and process at any given time.</span><br><span class="line">server.tomcat.max-http-post-size=0 # Maximum size in bytes of the HTTP post content.</span><br><span class="line">server.tomcat.max-threads=0 # Maximum amount of worker threads.</span><br><span class="line">server.tomcat.min-spare-threads=0 # Minimum amount of worker threads.</span><br><span class="line">server.tomcat.port-header=X-Forwarded-Port # Name of the HTTP header used to override the original port value.</span><br><span class="line">server.tomcat.protocol-header= # Header that holds the incoming protocol, usually named &quot;X-Forwarded-Proto&quot;.</span><br><span class="line">server.tomcat.protocol-header-https-value=https # Value of the protocol header that indicates that the incoming request uses SSL.</span><br><span class="line">server.tomcat.redirect-context-root= # Whether requests to the context root should be redirected by appending a / to the path.</span><br><span class="line">server.tomcat.remote-ip-header= # Name of the http header from which the remote ip is extracted. For instance `X-FORWARDED-FOR`</span><br><span class="line">server.tomcat.uri-encoding=UTF-8 # Character encoding to use to decode the URI.</span><br><span class="line">server.undertow.accesslog.dir= # Undertow access log directory.</span><br><span class="line">server.undertow.accesslog.enabled=false # Enable access log.</span><br><span class="line">server.undertow.accesslog.pattern=common # Format pattern for access logs.</span><br><span class="line">server.undertow.accesslog.prefix=access_log. # Log file name prefix.</span><br><span class="line">server.undertow.accesslog.rotate=true # Enable access log rotation.</span><br><span class="line">server.undertow.accesslog.suffix=log # Log file name suffix.</span><br><span class="line">server.undertow.buffer-size= # Size of each buffer in bytes.</span><br><span class="line">server.undertow.direct-buffers= # Allocate buffers outside the Java heap.</span><br><span class="line">server.undertow.io-threads= # Number of I/O threads to create for the worker.</span><br><span class="line">server.undertow.max-http-post-size=0 # Maximum size in bytes of the HTTP post content.</span><br><span class="line">server.undertow.worker-threads= # Number of worker threads.</span><br><span class="line"></span><br><span class="line"># FREEMARKER (FreeMarkerAutoConfiguration)</span><br><span class="line">spring.freemarker.allow-request-override=false # Set whether HttpServletRequest attributes are allowed to override (hide) controller generated model attributes of the same name.</span><br><span class="line">spring.freemarker.allow-session-override=false # Set whether HttpSession attributes are allowed to override (hide) controller generated model attributes of the same name.</span><br><span class="line">spring.freemarker.cache=false # Enable template caching.</span><br><span class="line">spring.freemarker.charset=UTF-8 # Template encoding.</span><br><span class="line">spring.freemarker.check-template-location=true # Check that the templates location exists.</span><br><span class="line">spring.freemarker.content-type=text/html # Content-Type value.</span><br><span class="line">spring.freemarker.enabled=true # Enable MVC view resolution for this technology.</span><br><span class="line">spring.freemarker.expose-request-attributes=false # Set whether all request attributes should be added to the model prior to merging with the template.</span><br><span class="line">spring.freemarker.expose-session-attributes=false # Set whether all HttpSession attributes should be added to the model prior to merging with the template.</span><br><span class="line">spring.freemarker.expose-spring-macro-helpers=true # Set whether to expose a RequestContext for use by Spring&apos;s macro library, under the name &quot;springMacroRequestContext&quot;.</span><br><span class="line">spring.freemarker.prefer-file-system-access=true # Prefer file system access for template loading. File system access enables hot detection of template changes.</span><br><span class="line">spring.freemarker.prefix= # Prefix that gets prepended to view names when building a URL.</span><br><span class="line">spring.freemarker.request-context-attribute= # Name of the RequestContext attribute for all views.</span><br><span class="line">spring.freemarker.settings.*= # Well-known FreeMarker keys which will be passed to FreeMarker&apos;s Configuration.</span><br><span class="line">spring.freemarker.suffix=.ftl # Suffix that gets appended to view names when building a URL.</span><br><span class="line">spring.freemarker.template-loader-path=classpath:/templates/ # Comma-separated list of template paths.</span><br><span class="line">spring.freemarker.view-names= # White list of view names that can be resolved.</span><br><span class="line"></span><br><span class="line"># GROOVY TEMPLATES (GroovyTemplateAutoConfiguration)</span><br><span class="line">spring.groovy.template.allow-request-override=false # Set whether HttpServletRequest attributes are allowed to override (hide) controller generated model attributes of the same name.</span><br><span class="line">spring.groovy.template.allow-session-override=false # Set whether HttpSession attributes are allowed to override (hide) controller generated model attributes of the same name.</span><br><span class="line">spring.groovy.template.cache= # Enable template caching.</span><br><span class="line">spring.groovy.template.charset=UTF-8 # Template encoding.</span><br><span class="line">spring.groovy.template.check-template-location=true # Check that the templates location exists.</span><br><span class="line">spring.groovy.template.configuration.*= # See GroovyMarkupConfigurer</span><br><span class="line">spring.groovy.template.content-type=test/html # Content-Type value.</span><br><span class="line">spring.groovy.template.enabled=true # Enable MVC view resolution for this technology.</span><br><span class="line">spring.groovy.template.expose-request-attributes=false # Set whether all request attributes should be added to the model prior to merging with the template.</span><br><span class="line">spring.groovy.template.expose-session-attributes=false # Set whether all HttpSession attributes should be added to the model prior to merging with the template.</span><br><span class="line">spring.groovy.template.expose-spring-macro-helpers=true # Set whether to expose a RequestContext for use by Spring&apos;s macro library, under the name &quot;springMacroRequestContext&quot;.</span><br><span class="line">spring.groovy.template.prefix= # Prefix that gets prepended to view names when building a URL.</span><br><span class="line">spring.groovy.template.request-context-attribute= # Name of the RequestContext attribute for all views.</span><br><span class="line">spring.groovy.template.resource-loader-path=classpath:/templates/ # Template path.</span><br><span class="line">spring.groovy.template.suffix=.tpl # Suffix that gets appended to view names when building a URL.</span><br><span class="line">spring.groovy.template.view-names= # White list of view names that can be resolved.</span><br><span class="line"></span><br><span class="line"># SPRING HATEOAS (HateoasProperties)</span><br><span class="line">spring.hateoas.use-hal-as-default-json-media-type=true # Specify if application/hal+json responses should be sent to requests that accept application/json.</span><br><span class="line"></span><br><span class="line"># HTTP message conversion</span><br><span class="line">spring.http.converters.preferred-json-mapper=jackson # Preferred JSON mapper to use for HTTP message conversion. Set to &quot;gson&quot; to force the use of Gson when both it and Jackson are on the classpath.</span><br><span class="line"></span><br><span class="line"># HTTP encoding (HttpEncodingProperties)</span><br><span class="line">spring.http.encoding.charset=UTF-8 # Charset of HTTP requests and responses. Added to the &quot;Content-Type&quot; header if not set explicitly.</span><br><span class="line">spring.http.encoding.enabled=true # Enable http encoding support.</span><br><span class="line">spring.http.encoding.force= # Force the encoding to the configured charset on HTTP requests and responses.</span><br><span class="line">spring.http.encoding.force-request= # Force the encoding to the configured charset on HTTP requests. Defaults to true when &quot;force&quot; has not been specified.</span><br><span class="line">spring.http.encoding.force-response= # Force the encoding to the configured charset on HTTP responses.</span><br><span class="line">spring.http.encoding.mapping= # Locale to Encoding mapping.</span><br><span class="line"></span><br><span class="line"># MULTIPART (MultipartProperties)</span><br><span class="line">spring.http.multipart.enabled=true # Enable support of multi-part uploads.</span><br><span class="line">spring.http.multipart.file-size-threshold=0 # Threshold after which files will be written to disk. Values can use the suffixed &quot;MB&quot; or &quot;KB&quot; to indicate a Megabyte or Kilobyte size.</span><br><span class="line">spring.http.multipart.location= # Intermediate location of uploaded files.</span><br><span class="line">spring.http.multipart.max-file-size=1MB # Max file size. Values can use the suffixed &quot;MB&quot; or &quot;KB&quot; to indicate a Megabyte or Kilobyte size.</span><br><span class="line">spring.http.multipart.max-request-size=10MB # Max request size. Values can use the suffixed &quot;MB&quot; or &quot;KB&quot; to indicate a Megabyte or Kilobyte size.</span><br><span class="line">spring.http.multipart.resolve-lazily=false # Whether to resolve the multipart request lazily at the time of file or parameter access.</span><br><span class="line"></span><br><span class="line"># JACKSON (JacksonProperties)</span><br><span class="line">spring.jackson.date-format= # Date format string or a fully-qualified date format class name. For instance `yyyy-MM-dd HH:mm:ss`.</span><br><span class="line">spring.jackson.default-property-inclusion= # Controls the inclusion of properties during serialization.</span><br><span class="line">spring.jackson.deserialization.*= # Jackson on/off features that affect the way Java objects are deserialized.</span><br><span class="line">spring.jackson.generator.*= # Jackson on/off features for generators.</span><br><span class="line">spring.jackson.joda-date-time-format= # Joda date time format string. If not configured, &quot;date-format&quot; will be used as a fallback if it is configured with a format string.</span><br><span class="line">spring.jackson.locale= # Locale used for formatting.</span><br><span class="line">spring.jackson.mapper.*= # Jackson general purpose on/off features.</span><br><span class="line">spring.jackson.parser.*= # Jackson on/off features for parsers.</span><br><span class="line">spring.jackson.property-naming-strategy= # One of the constants on Jackson&apos;s PropertyNamingStrategy. Can also be a fully-qualified class name of a PropertyNamingStrategy subclass.</span><br><span class="line">spring.jackson.serialization.*= # Jackson on/off features that affect the way Java objects are serialized.</span><br><span class="line">spring.jackson.time-zone= # Time zone used when formatting dates. For instance `America/Los_Angeles`</span><br><span class="line"></span><br><span class="line"># JERSEY (JerseyProperties)</span><br><span class="line">spring.jersey.application-path= # Path that serves as the base URI for the application. Overrides the value of &quot;@ApplicationPath&quot; if specified.</span><br><span class="line">spring.jersey.filter.order=0 # Jersey filter chain order.</span><br><span class="line">spring.jersey.init.*= # Init parameters to pass to Jersey via the servlet or filter.</span><br><span class="line">spring.jersey.servlet.load-on-startup=-1 # Load on startup priority of the Jersey servlet.</span><br><span class="line">spring.jersey.type=servlet # Jersey integration type.</span><br><span class="line"></span><br><span class="line"># SPRING LDAP (LdapProperties)</span><br><span class="line">spring.ldap.urls= # LDAP URLs of the server.</span><br><span class="line">spring.ldap.base= # Base suffix from which all operations should originate.</span><br><span class="line">spring.ldap.username= # Login user of the server.</span><br><span class="line">spring.ldap.password= # Login password of the server.</span><br><span class="line">spring.ldap.base-environment.*= # LDAP specification settings.</span><br><span class="line"></span><br><span class="line"># EMBEDDED LDAP (EmbeddedLdapProperties)</span><br><span class="line">spring.ldap.embedded.base-dn= # The base DN</span><br><span class="line">spring.ldap.embedded.credential.username= # Embedded LDAP username.</span><br><span class="line">spring.ldap.embedded.credential.password= # Embedded LDAP password.</span><br><span class="line">spring.ldap.embedded.ldif=classpath:schema.ldif # Schema (LDIF) script resource reference.</span><br><span class="line">spring.ldap.embedded.port= # Embedded LDAP port.</span><br><span class="line">spring.ldap.embedded.validation.enabled=true # Enable LDAP schema validation.</span><br><span class="line">spring.ldap.embedded.validation.schema= # Path to the custom schema.</span><br><span class="line"></span><br><span class="line"># SPRING MOBILE DEVICE VIEWS (DeviceDelegatingViewResolverAutoConfiguration)</span><br><span class="line">spring.mobile.devicedelegatingviewresolver.enable-fallback=false # Enable support for fallback resolution.</span><br><span class="line">spring.mobile.devicedelegatingviewresolver.enabled=false # Enable device view resolver.</span><br><span class="line">spring.mobile.devicedelegatingviewresolver.mobile-prefix=mobile/ # Prefix that gets prepended to view names for mobile devices.</span><br><span class="line">spring.mobile.devicedelegatingviewresolver.mobile-suffix= # Suffix that gets appended to view names for mobile devices.</span><br><span class="line">spring.mobile.devicedelegatingviewresolver.normal-prefix= # Prefix that gets prepended to view names for normal devices.</span><br><span class="line">spring.mobile.devicedelegatingviewresolver.normal-suffix= # Suffix that gets appended to view names for normal devices.</span><br><span class="line">spring.mobile.devicedelegatingviewresolver.tablet-prefix=tablet/ # Prefix that gets prepended to view names for tablet devices.</span><br><span class="line">spring.mobile.devicedelegatingviewresolver.tablet-suffix= # Suffix that gets appended to view names for tablet devices.</span><br><span class="line"></span><br><span class="line"># SPRING MOBILE SITE PREFERENCE (SitePreferenceAutoConfiguration)</span><br><span class="line">spring.mobile.sitepreference.enabled=true # Enable SitePreferenceHandler.</span><br><span class="line"></span><br><span class="line"># MUSTACHE TEMPLATES (MustacheAutoConfiguration)</span><br><span class="line">spring.mustache.allow-request-override= # Set whether HttpServletRequest attributes are allowed to override (hide) controller generated model attributes of the same name.</span><br><span class="line">spring.mustache.allow-session-override= # Set whether HttpSession attributes are allowed to override (hide) controller generated model attributes of the same name.</span><br><span class="line">spring.mustache.cache= # Enable template caching.</span><br><span class="line">spring.mustache.charset= # Template encoding.</span><br><span class="line">spring.mustache.check-template-location= # Check that the templates location exists.</span><br><span class="line">spring.mustache.content-type= # Content-Type value.</span><br><span class="line">spring.mustache.enabled= # Enable MVC view resolution for this technology.</span><br><span class="line">spring.mustache.expose-request-attributes= # Set whether all request attributes should be added to the model prior to merging with the template.</span><br><span class="line">spring.mustache.expose-session-attributes= # Set whether all HttpSession attributes should be added to the model prior to merging with the template.</span><br><span class="line">spring.mustache.expose-spring-macro-helpers= # Set whether to expose a RequestContext for use by Spring&apos;s macro library, under the name &quot;springMacroRequestContext&quot;.</span><br><span class="line">spring.mustache.prefix=classpath:/templates/ # Prefix to apply to template names.</span><br><span class="line">spring.mustache.request-context-attribute= # Name of the RequestContext attribute for all views.</span><br><span class="line">spring.mustache.suffix=.html # Suffix to apply to template names.</span><br><span class="line">spring.mustache.view-names= # White list of view names that can be resolved.</span><br><span class="line"></span><br><span class="line"># SPRING MVC (WebMvcProperties)</span><br><span class="line">spring.mvc.async.request-timeout= # Amount of time (in milliseconds) before asynchronous request handling times out.</span><br><span class="line">spring.mvc.date-format= # Date format to use. For instance `dd/MM/yyyy`.</span><br><span class="line">spring.mvc.dispatch-trace-request=false # Dispatch TRACE requests to the FrameworkServlet doService method.</span><br><span class="line">spring.mvc.dispatch-options-request=true # Dispatch OPTIONS requests to the FrameworkServlet doService method.</span><br><span class="line">spring.mvc.favicon.enabled=true # Enable resolution of favicon.ico.</span><br><span class="line">spring.mvc.formcontent.putfilter.enabled=true # Enable Spring&apos;s HttpPutFormContentFilter.</span><br><span class="line">spring.mvc.ignore-default-model-on-redirect=true # If the content of the &quot;default&quot; model should be ignored during redirect scenarios.</span><br><span class="line">spring.mvc.locale= # Locale to use. By default, this locale is overridden by the &quot;Accept-Language&quot; header.</span><br><span class="line">spring.mvc.locale-resolver=accept-header # Define how the locale should be resolved.</span><br><span class="line">spring.mvc.log-resolved-exception=false # Enable warn logging of exceptions resolved by a &quot;HandlerExceptionResolver&quot;.</span><br><span class="line">spring.mvc.media-types.*= # Maps file extensions to media types for content negotiation.</span><br><span class="line">spring.mvc.message-codes-resolver-format= # Formatting strategy for message codes. For instance `PREFIX_ERROR_CODE`.</span><br><span class="line">spring.mvc.servlet.load-on-startup=-1 # Load on startup priority of the Spring Web Services servlet.</span><br><span class="line">spring.mvc.static-path-pattern=/** # Path pattern used for static resources.</span><br><span class="line">spring.mvc.throw-exception-if-no-handler-found=false # If a &quot;NoHandlerFoundException&quot; should be thrown if no Handler was found to process a request.</span><br><span class="line">spring.mvc.view.prefix= # Spring MVC view prefix.</span><br><span class="line">spring.mvc.view.suffix= # Spring MVC view suffix.</span><br><span class="line"></span><br><span class="line"># SPRING RESOURCES HANDLING (ResourceProperties)</span><br><span class="line">spring.resources.add-mappings=true # Enable default resource handling.</span><br><span class="line">spring.resources.cache-period= # Cache period for the resources served by the resource handler, in seconds.</span><br><span class="line">spring.resources.chain.cache=true # Enable caching in the Resource chain.</span><br><span class="line">spring.resources.chain.enabled= # Enable the Spring Resource Handling chain. Disabled by default unless at least one strategy has been enabled.</span><br><span class="line">spring.resources.chain.gzipped=false # Enable resolution of already gzipped resources.</span><br><span class="line">spring.resources.chain.html-application-cache=false # Enable HTML5 application cache manifest rewriting.</span><br><span class="line">spring.resources.chain.strategy.content.enabled=false # Enable the content Version Strategy.</span><br><span class="line">spring.resources.chain.strategy.content.paths=/** # Comma-separated list of patterns to apply to the Version Strategy.</span><br><span class="line">spring.resources.chain.strategy.fixed.enabled=false # Enable the fixed Version Strategy.</span><br><span class="line">spring.resources.chain.strategy.fixed.paths=/** # Comma-separated list of patterns to apply to the Version Strategy.</span><br><span class="line">spring.resources.chain.strategy.fixed.version= # Version string to use for the Version Strategy.</span><br><span class="line">spring.resources.static-locations=classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/ # Locations of static resources.</span><br><span class="line"></span><br><span class="line"># SPRING SESSION (SessionProperties)</span><br><span class="line">spring.session.hazelcast.flush-mode=on-save # Sessions flush mode.</span><br><span class="line">spring.session.hazelcast.map-name=spring:session:sessions # Name of the map used to store sessions.</span><br><span class="line">spring.session.jdbc.initializer.enabled= # Create the required session tables on startup if necessary. Enabled automatically if the default table name is set or a custom schema is configured.</span><br><span class="line">spring.session.jdbc.schema=classpath:org/springframework/session/jdbc/schema-@@platform@@.sql # Path to the SQL file to use to initialize the database schema.</span><br><span class="line">spring.session.jdbc.table-name=SPRING_SESSION # Name of database table used to store sessions.</span><br><span class="line">spring.session.mongo.collection-name=sessions # Collection name used to store sessions.</span><br><span class="line">spring.session.redis.flush-mode=on-save # Sessions flush mode.</span><br><span class="line">spring.session.redis.namespace= # Namespace for keys used to store sessions.</span><br><span class="line">spring.session.store-type= # Session store type.</span><br><span class="line"></span><br><span class="line"># SPRING SOCIAL (SocialWebAutoConfiguration)</span><br><span class="line">spring.social.auto-connection-views=false # Enable the connection status view for supported providers.</span><br><span class="line"></span><br><span class="line"># SPRING SOCIAL FACEBOOK (FacebookAutoConfiguration)</span><br><span class="line">spring.social.facebook.app-id= # your application&apos;s Facebook App ID</span><br><span class="line">spring.social.facebook.app-secret= # your application&apos;s Facebook App Secret</span><br><span class="line"></span><br><span class="line"># SPRING SOCIAL LINKEDIN (LinkedInAutoConfiguration)</span><br><span class="line">spring.social.linkedin.app-id= # your application&apos;s LinkedIn App ID</span><br><span class="line">spring.social.linkedin.app-secret= # your application&apos;s LinkedIn App Secret</span><br><span class="line"></span><br><span class="line"># SPRING SOCIAL TWITTER (TwitterAutoConfiguration)</span><br><span class="line">spring.social.twitter.app-id= # your application&apos;s Twitter App ID</span><br><span class="line">spring.social.twitter.app-secret= # your application&apos;s Twitter App Secret</span><br><span class="line"></span><br><span class="line"># THYMELEAF (ThymeleafAutoConfiguration)</span><br><span class="line">spring.thymeleaf.cache=true # Enable template caching.</span><br><span class="line">spring.thymeleaf.check-template=true # Check that the template exists before rendering it.</span><br><span class="line">spring.thymeleaf.check-template-location=true # Check that the templates location exists.</span><br><span class="line">spring.thymeleaf.content-type=text/html # Content-Type value.</span><br><span class="line">spring.thymeleaf.enabled=true # Enable MVC Thymeleaf view resolution.</span><br><span class="line">spring.thymeleaf.encoding=UTF-8 # Template encoding.</span><br><span class="line">spring.thymeleaf.excluded-view-names= # Comma-separated list of view names that should be excluded from resolution.</span><br><span class="line">spring.thymeleaf.mode=HTML5 # Template mode to be applied to templates. See also StandardTemplateModeHandlers.</span><br><span class="line">spring.thymeleaf.prefix=classpath:/templates/ # Prefix that gets prepended to view names when building a URL.</span><br><span class="line">spring.thymeleaf.suffix=.html # Suffix that gets appended to view names when building a URL.</span><br><span class="line">spring.thymeleaf.template-resolver-order= # Order of the template resolver in the chain.</span><br><span class="line">spring.thymeleaf.view-names= # Comma-separated list of view names that can be resolved.</span><br><span class="line"></span><br><span class="line"># SPRING WEB SERVICES (WebServicesProperties)</span><br><span class="line">spring.webservices.path=/services # Path that serves as the base URI for the services.</span><br><span class="line">spring.webservices.servlet.init= # Servlet init parameters to pass to Spring Web Services.</span><br><span class="line">spring.webservices.servlet.load-on-startup=-1 # Load on startup priority of the Spring Web Services servlet.</span><br><span class="line"></span><br><span class="line"></span><br><span class="line"></span><br><span class="line"># ----------------------------------------</span><br><span class="line"># SECURITY PROPERTIES</span><br><span class="line"># ----------------------------------------</span><br><span class="line"># SECURITY (SecurityProperties)</span><br><span class="line">security.basic.authorize-mode=role # Security authorize mode to apply.</span><br><span class="line">security.basic.enabled=true # Enable basic authentication.</span><br><span class="line">security.basic.path=/** # Comma-separated list of paths to secure.</span><br><span class="line">security.basic.realm=Spring # HTTP basic realm name.</span><br><span class="line">security.enable-csrf=false # Enable Cross Site Request Forgery support.</span><br><span class="line">security.filter-order=0 # Security filter chain order.</span><br><span class="line">security.filter-dispatcher-types=ASYNC, FORWARD, INCLUDE, REQUEST # Security filter chain dispatcher types.</span><br><span class="line">security.headers.cache=true # Enable cache control HTTP headers.</span><br><span class="line">security.headers.content-security-policy= # Value for content security policy header.</span><br><span class="line">security.headers.content-security-policy-mode=default # Content security policy mode.</span><br><span class="line">security.headers.content-type=true # Enable &quot;X-Content-Type-Options&quot; header.</span><br><span class="line">security.headers.frame=true # Enable &quot;X-Frame-Options&quot; header.</span><br><span class="line">security.headers.hsts=all # HTTP Strict Transport Security (HSTS) mode (none, domain, all).</span><br><span class="line">security.headers.xss=true # Enable cross site scripting (XSS) protection.</span><br><span class="line">security.ignored= # Comma-separated list of paths to exclude from the default secured paths.</span><br><span class="line">security.require-ssl=false # Enable secure channel for all requests.</span><br><span class="line">security.sessions=stateless # Session creation policy (always, never, if_required, stateless).</span><br><span class="line">security.user.name=user # Default user name.</span><br><span class="line">security.user.password= # Password for the default user name. A random password is logged on startup by default.</span><br><span class="line">security.user.role=USER # Granted roles for the default user name.</span><br><span class="line"></span><br><span class="line"># SECURITY OAUTH2 CLIENT (OAuth2ClientProperties)</span><br><span class="line">security.oauth2.client.client-id= # OAuth2 client id.</span><br><span class="line">security.oauth2.client.client-secret= # OAuth2 client secret. A random secret is generated by default</span><br><span class="line"></span><br><span class="line"># SECURITY OAUTH2 RESOURCES (ResourceServerProperties)</span><br><span class="line">security.oauth2.resource.filter-order= # The order of the filter chain used to authenticate tokens.</span><br><span class="line">security.oauth2.resource.id= # Identifier of the resource.</span><br><span class="line">security.oauth2.resource.jwt.key-uri= # The URI of the JWT token. Can be set if the value is not available and the key is public.</span><br><span class="line">security.oauth2.resource.jwt.key-value= # The verification key of the JWT token. Can either be a symmetric secret or PEM-encoded RSA public key.</span><br><span class="line">security.oauth2.resource.jwk.key-set-uri= # The URI for getting the set of keys that can be used to validate the token.</span><br><span class="line">security.oauth2.resource.prefer-token-info=true # Use the token info, can be set to false to use the user info.</span><br><span class="line">security.oauth2.resource.service-id=resource #</span><br><span class="line">security.oauth2.resource.token-info-uri= # URI of the token decoding endpoint.</span><br><span class="line">security.oauth2.resource.token-type= # The token type to send when using the userInfoUri.</span><br><span class="line">security.oauth2.resource.user-info-uri= # URI of the user endpoint.</span><br><span class="line"></span><br><span class="line"># SECURITY OAUTH2 SSO (OAuth2SsoProperties)</span><br><span class="line">security.oauth2.sso.filter-order= # Filter order to apply if not providing an explicit WebSecurityConfigurerAdapter</span><br><span class="line">security.oauth2.sso.login-path=/login # Path to the login page, i.e. the one that triggers the redirect to the OAuth2 Authorization Server</span><br><span class="line"></span><br><span class="line"></span><br><span class="line"># ----------------------------------------</span><br><span class="line"># DATA PROPERTIES</span><br><span class="line"># ----------------------------------------</span><br><span class="line"></span><br><span class="line"># FLYWAY (FlywayProperties)</span><br><span class="line">flyway.baseline-description= #</span><br><span class="line">flyway.baseline-version=1 # version to start migration</span><br><span class="line">flyway.baseline-on-migrate= #</span><br><span class="line">flyway.check-location=false # Check that migration scripts location exists.</span><br><span class="line">flyway.clean-on-validation-error= #</span><br><span class="line">flyway.enabled=true # Enable flyway.</span><br><span class="line">flyway.encoding= #</span><br><span class="line">flyway.ignore-failed-future-migration= #</span><br><span class="line">flyway.init-sqls= # SQL statements to execute to initialize a connection immediately after obtaining it.</span><br><span class="line">flyway.locations=classpath:db/migration # locations of migrations scripts</span><br><span class="line">flyway.out-of-order= #</span><br><span class="line">flyway.password= # JDBC password if you want Flyway to create its own DataSource</span><br><span class="line">flyway.placeholder-prefix= #</span><br><span class="line">flyway.placeholder-replacement= #</span><br><span class="line">flyway.placeholder-suffix= #</span><br><span class="line">flyway.placeholders.*= #</span><br><span class="line">flyway.schemas= # schemas to update</span><br><span class="line">flyway.sql-migration-prefix=V #</span><br><span class="line">flyway.sql-migration-separator= #</span><br><span class="line">flyway.sql-migration-suffix=.sql #</span><br><span class="line">flyway.table= #</span><br><span class="line">flyway.url= # JDBC url of the database to migrate. If not set, the primary configured data source is used.</span><br><span class="line">flyway.user= # Login user of the database to migrate.</span><br><span class="line">flyway.validate-on-migrate= #</span><br><span class="line"></span><br><span class="line"># LIQUIBASE (LiquibaseProperties)</span><br><span class="line">liquibase.change-log=classpath:/db/changelog/db.changelog-master.yaml # Change log configuration path.</span><br><span class="line">liquibase.check-change-log-location=true # Check the change log location exists.</span><br><span class="line">liquibase.contexts= # Comma-separated list of runtime contexts to use.</span><br><span class="line">liquibase.default-schema= # Default database schema.</span><br><span class="line">liquibase.drop-first=false # Drop the database schema first.</span><br><span class="line">liquibase.enabled=true # Enable liquibase support.</span><br><span class="line">liquibase.labels= # Comma-separated list of runtime labels to use.</span><br><span class="line">liquibase.parameters.*= # Change log parameters.</span><br><span class="line">liquibase.password= # Login password of the database to migrate.</span><br><span class="line">liquibase.rollback-file= # File to which rollback SQL will be written when an update is performed.</span><br><span class="line">liquibase.url= # JDBC url of the database to migrate. If not set, the primary configured data source is used.</span><br><span class="line">liquibase.user= # Login user of the database to migrate.</span><br><span class="line"></span><br><span class="line"># COUCHBASE (CouchbaseProperties)</span><br><span class="line">spring.couchbase.bootstrap-hosts= # Couchbase nodes (host or IP address) to bootstrap from.</span><br><span class="line">spring.couchbase.bucket.name=default # Name of the bucket to connect to.</span><br><span class="line">spring.couchbase.bucket.password=  # Password of the bucket.</span><br><span class="line">spring.couchbase.env.endpoints.key-value=1 # Number of sockets per node against the Key/value service.</span><br><span class="line">spring.couchbase.env.endpoints.query=1 # Number of sockets per node against the Query (N1QL) service.</span><br><span class="line">spring.couchbase.env.endpoints.view=1 # Number of sockets per node against the view service.</span><br><span class="line">spring.couchbase.env.ssl.enabled= # Enable SSL support. Enabled automatically if a &quot;keyStore&quot; is provided unless specified otherwise.</span><br><span class="line">spring.couchbase.env.ssl.key-store= # Path to the JVM key store that holds the certificates.</span><br><span class="line">spring.couchbase.env.ssl.key-store-password= # Password used to access the key store.</span><br><span class="line">spring.couchbase.env.timeouts.connect=5000 # Bucket connections timeout in milliseconds.</span><br><span class="line">spring.couchbase.env.timeouts.key-value=2500 # Blocking operations performed on a specific key timeout in milliseconds.</span><br><span class="line">spring.couchbase.env.timeouts.query=7500 # N1QL query operations timeout in milliseconds.</span><br><span class="line">spring.couchbase.env.timeouts.socket-connect=1000 # Socket connect connections timeout in milliseconds.</span><br><span class="line">spring.couchbase.env.timeouts.view=7500 # Regular and geospatial view operations timeout in milliseconds.</span><br><span class="line"></span><br><span class="line"># DAO (PersistenceExceptionTranslationAutoConfiguration)</span><br><span class="line">spring.dao.exceptiontranslation.enabled=true # Enable the PersistenceExceptionTranslationPostProcessor.</span><br><span class="line"></span><br><span class="line"># CASSANDRA (CassandraProperties)</span><br><span class="line">spring.data.cassandra.cluster-name= # Name of the Cassandra cluster.</span><br><span class="line">spring.data.cassandra.compression=none # Compression supported by the Cassandra binary protocol.</span><br><span class="line">spring.data.cassandra.connect-timeout-millis= # Socket option: connection time out.</span><br><span class="line">spring.data.cassandra.consistency-level= # Queries consistency level.</span><br><span class="line">spring.data.cassandra.contact-points=localhost # Comma-separated list of cluster node addresses.</span><br><span class="line">spring.data.cassandra.fetch-size= # Queries default fetch size.</span><br><span class="line">spring.data.cassandra.keyspace-name= # Keyspace name to use.</span><br><span class="line">spring.data.cassandra.load-balancing-policy= # Class name of the load balancing policy.</span><br><span class="line">spring.data.cassandra.port= # Port of the Cassandra server.</span><br><span class="line">spring.data.cassandra.password= # Login password of the server.</span><br><span class="line">spring.data.cassandra.read-timeout-millis= # Socket option: read time out.</span><br><span class="line">spring.data.cassandra.reconnection-policy= # Reconnection policy class.</span><br><span class="line">spring.data.cassandra.repositories.enabled= # Enable Cassandra repositories.</span><br><span class="line">spring.data.cassandra.retry-policy= # Class name of the retry policy.</span><br><span class="line">spring.data.cassandra.serial-consistency-level= # Queries serial consistency level.</span><br><span class="line">spring.data.cassandra.schema-action=none # Schema action to take at startup.</span><br><span class="line">spring.data.cassandra.ssl=false # Enable SSL support.</span><br><span class="line">spring.data.cassandra.username= # Login user of the server.</span><br><span class="line"></span><br><span class="line"># DATA COUCHBASE (CouchbaseDataProperties)</span><br><span class="line">spring.data.couchbase.auto-index=false # Automatically create views and indexes.</span><br><span class="line">spring.data.couchbase.consistency=read-your-own-writes # Consistency to apply by default on generated queries.</span><br><span class="line">spring.data.couchbase.repositories.enabled=true # Enable Couchbase repositories.</span><br><span class="line"></span><br><span class="line"># ELASTICSEARCH (ElasticsearchProperties)</span><br><span class="line">spring.data.elasticsearch.cluster-name=elasticsearch # Elasticsearch cluster name.</span><br><span class="line">spring.data.elasticsearch.cluster-nodes= # Comma-separated list of cluster node addresses. If not specified, starts a client node.</span><br><span class="line">spring.data.elasticsearch.properties.*= # Additional properties used to configure the client.</span><br><span class="line">spring.data.elasticsearch.repositories.enabled=true # Enable Elasticsearch repositories.</span><br><span class="line"></span><br><span class="line"># DATA LDAP</span><br><span class="line">spring.data.ldap.repositories.enabled=true # Enable LDAP repositories.</span><br><span class="line"></span><br><span class="line"># MONGODB (MongoProperties)</span><br><span class="line">spring.data.mongodb.authentication-database= # Authentication database name.</span><br><span class="line">spring.data.mongodb.database=test # Database name.</span><br><span class="line">spring.data.mongodb.field-naming-strategy= # Fully qualified name of the FieldNamingStrategy to use.</span><br><span class="line">spring.data.mongodb.grid-fs-database= # GridFS database name.</span><br><span class="line">spring.data.mongodb.host=localhost # Mongo server host. Cannot be set with uri.</span><br><span class="line">spring.data.mongodb.password= # Login password of the mongo server. Cannot be set with uri.</span><br><span class="line">spring.data.mongodb.port=27017 # Mongo server port. Cannot be set with uri.</span><br><span class="line">spring.data.mongodb.repositories.enabled=true # Enable Mongo repositories.</span><br><span class="line">spring.data.mongodb.uri=mongodb://localhost/test # Mongo database URI. Cannot be set with host, port and credentials.</span><br><span class="line">spring.data.mongodb.username= # Login user of the mongo server. Cannot be set with uri.</span><br><span class="line"></span><br><span class="line"># DATA REDIS</span><br><span class="line">spring.data.redis.repositories.enabled=true # Enable Redis repositories.</span><br><span class="line"></span><br><span class="line"># NEO4J (Neo4jProperties)</span><br><span class="line">spring.data.neo4j.compiler= # Compiler to use.</span><br><span class="line">spring.data.neo4j.embedded.enabled=true # Enable embedded mode if the embedded driver is available.</span><br><span class="line">spring.data.neo4j.open-in-view=true # Register OpenSessionInViewInterceptor. Binds a Neo4j Session to the thread for the entire processing of the request.</span><br><span class="line">spring.data.neo4j.password= # Login password of the server.</span><br><span class="line">spring.data.neo4j.repositories.enabled=true # Enable Neo4j repositories.</span><br><span class="line">spring.data.neo4j.uri= # URI used by the driver. Auto-detected by default.</span><br><span class="line">spring.data.neo4j.username= # Login user of the server.</span><br><span class="line"></span><br><span class="line"># DATA REST (RepositoryRestProperties)</span><br><span class="line">spring.data.rest.base-path= # Base path to be used by Spring Data REST to expose repository resources.</span><br><span class="line">spring.data.rest.default-media-type= # Content type to use as a default when none is specified.</span><br><span class="line">spring.data.rest.default-page-size= # Default size of pages.</span><br><span class="line">spring.data.rest.detection-strategy=default # Strategy to use to determine which repositories get exposed.</span><br><span class="line">spring.data.rest.enable-enum-translation= # Enable enum value translation via the Spring Data REST default resource bundle.</span><br><span class="line">spring.data.rest.limit-param-name= # Name of the URL query string parameter that indicates how many results to return at once.</span><br><span class="line">spring.data.rest.max-page-size= # Maximum size of pages.</span><br><span class="line">spring.data.rest.page-param-name= # Name of the URL query string parameter that indicates what page to return.</span><br><span class="line">spring.data.rest.return-body-on-create= # Return a response body after creating an entity.</span><br><span class="line">spring.data.rest.return-body-on-update= # Return a response body after updating an entity.</span><br><span class="line">spring.data.rest.sort-param-name= # Name of the URL query string parameter that indicates what direction to sort results.</span><br><span class="line"></span><br><span class="line"># SOLR (SolrProperties)</span><br><span class="line">spring.data.solr.host=http://127.0.0.1:8983/solr # Solr host. Ignored if &quot;zk-host&quot; is set.</span><br><span class="line">spring.data.solr.repositories.enabled=true # Enable Solr repositories.</span><br><span class="line">spring.data.solr.zk-host= # ZooKeeper host address in the form HOST:PORT.</span><br><span class="line"></span><br><span class="line"># DATASOURCE (DataSourceAutoConfiguration &amp; DataSourceProperties)</span><br><span class="line">spring.datasource.continue-on-error=false # Do not stop if an error occurs while initializing the database.</span><br><span class="line">spring.datasource.data= # Data (DML) script resource references.</span><br><span class="line">spring.datasource.data-username= # User of the database to execute DML scripts (if different).</span><br><span class="line">spring.datasource.data-password= # Password of the database to execute DML scripts (if different).</span><br><span class="line">spring.datasource.dbcp2.*= # Commons DBCP2 specific settings</span><br><span class="line">spring.datasource.driver-class-name= # Fully qualified name of the JDBC driver. Auto-detected based on the URL by default.</span><br><span class="line">spring.datasource.generate-unique-name=false # Generate a random datasource name.</span><br><span class="line">spring.datasource.hikari.*= # Hikari specific settings</span><br><span class="line">spring.datasource.initialize=true # Populate the database using &apos;data.sql&apos;.</span><br><span class="line">spring.datasource.jmx-enabled=false # Enable JMX support (if provided by the underlying pool).</span><br><span class="line">spring.datasource.jndi-name= # JNDI location of the datasource. Class, url, username &amp; password are ignored when set.</span><br><span class="line">spring.datasource.name=testdb # Name of the datasource.</span><br><span class="line">spring.datasource.password= # Login password of the database.</span><br><span class="line">spring.datasource.platform=all # Platform to use in the DDL or DML scripts (e.g. schema-$&#123;platform&#125;.sql or data-$&#123;platform&#125;.sql).</span><br><span class="line">spring.datasource.schema= # Schema (DDL) script resource references.</span><br><span class="line">spring.datasource.schema-username= # User of the database to execute DDL scripts (if different).</span><br><span class="line">spring.datasource.schema-password= # Password of the database to execute DDL scripts (if different).</span><br><span class="line">spring.datasource.separator=; # Statement separator in SQL initialization scripts.</span><br><span class="line">spring.datasource.sql-script-encoding= # SQL scripts encoding.</span><br><span class="line">spring.datasource.tomcat.*= # Tomcat datasource specific settings</span><br><span class="line">spring.datasource.type= # Fully qualified name of the connection pool implementation to use. By default, it is auto-detected from the classpath.</span><br><span class="line">spring.datasource.url= # JDBC url of the database.</span><br><span class="line">spring.datasource.username= # Login user of the database.</span><br><span class="line">spring.datasource.xa.data-source-class-name= # XA datasource fully qualified name.</span><br><span class="line">spring.datasource.xa.properties= # Properties to pass to the XA data source.</span><br><span class="line"></span><br><span class="line"># JEST (Elasticsearch HTTP client) (JestProperties)</span><br><span class="line">spring.elasticsearch.jest.connection-timeout=3000 # Connection timeout in milliseconds.</span><br><span class="line">spring.elasticsearch.jest.multi-threaded=true # Enable connection requests from multiple execution threads.</span><br><span class="line">spring.elasticsearch.jest.password= # Login password.</span><br><span class="line">spring.elasticsearch.jest.proxy.host= # Proxy host the HTTP client should use.</span><br><span class="line">spring.elasticsearch.jest.proxy.port= # Proxy port the HTTP client should use.</span><br><span class="line">spring.elasticsearch.jest.read-timeout=3000 # Read timeout in milliseconds.</span><br><span class="line">spring.elasticsearch.jest.uris=http://localhost:9200 # Comma-separated list of the Elasticsearch instances to use.</span><br><span class="line">spring.elasticsearch.jest.username= # Login user.</span><br><span class="line"></span><br><span class="line"># H2 Web Console (H2ConsoleProperties)</span><br><span class="line">spring.h2.console.enabled=false # Enable the console.</span><br><span class="line">spring.h2.console.path=/h2-console # Path at which the console will be available.</span><br><span class="line">spring.h2.console.settings.trace=false # Enable trace output.</span><br><span class="line">spring.h2.console.settings.web-allow-others=false # Enable remote access.</span><br><span class="line"></span><br><span class="line"># JOOQ (JooqProperties)</span><br><span class="line">spring.jooq.sql-dialect= # SQLDialect JOOQ used when communicating with the configured datasource. For instance `POSTGRES`</span><br><span class="line"></span><br><span class="line"># JPA (JpaBaseConfiguration, HibernateJpaAutoConfiguration)</span><br><span class="line">spring.data.jpa.repositories.enabled=true # Enable JPA repositories.</span><br><span class="line">spring.jpa.database= # Target database to operate on, auto-detected by default. Can be alternatively set using the &quot;databasePlatform&quot; property.</span><br><span class="line">spring.jpa.database-platform= # Name of the target database to operate on, auto-detected by default. Can be alternatively set using the &quot;Database&quot; enum.</span><br><span class="line">spring.jpa.generate-ddl=false # Initialize the schema on startup.</span><br><span class="line">spring.jpa.hibernate.ddl-auto= # DDL mode. This is actually a shortcut for the &quot;hibernate.hbm2ddl.auto&quot; property. Default to &quot;create-drop&quot; when using an embedded database, &quot;none&quot; otherwise.</span><br><span class="line">spring.jpa.hibernate.naming.implicit-strategy= # Hibernate 5 implicit naming strategy fully qualified name.</span><br><span class="line">spring.jpa.hibernate.naming.physical-strategy= # Hibernate 5 physical naming strategy fully qualified name.</span><br><span class="line">spring.jpa.hibernate.naming.strategy= # Hibernate 4 naming strategy fully qualified name. Not supported with Hibernate 5.</span><br><span class="line">spring.jpa.hibernate.use-new-id-generator-mappings= # Use Hibernate&apos;s newer IdentifierGenerator for AUTO, TABLE and SEQUENCE.</span><br><span class="line">spring.jpa.open-in-view=true # Register OpenEntityManagerInViewInterceptor. Binds a JPA EntityManager to the thread for the entire processing of the request.</span><br><span class="line">spring.jpa.properties.*= # Additional native properties to set on the JPA provider.</span><br><span class="line">spring.jpa.show-sql=false # Enable logging of SQL statements.</span><br><span class="line"></span><br><span class="line"># JTA (JtaAutoConfiguration)</span><br><span class="line">spring.jta.enabled=true # Enable JTA support.</span><br><span class="line">spring.jta.log-dir= # Transaction logs directory.</span><br><span class="line">spring.jta.transaction-manager-id= # Transaction manager unique identifier.</span><br><span class="line"></span><br><span class="line"># ATOMIKOS (AtomikosProperties)</span><br><span class="line">spring.jta.atomikos.connectionfactory.borrow-connection-timeout=30 # Timeout, in seconds, for borrowing connections from the pool.</span><br><span class="line">spring.jta.atomikos.connectionfactory.ignore-session-transacted-flag=true # Whether or not to ignore the transacted flag when creating session.</span><br><span class="line">spring.jta.atomikos.connectionfactory.local-transaction-mode=false # Whether or not local transactions are desired.</span><br><span class="line">spring.jta.atomikos.connectionfactory.maintenance-interval=60 # The time, in seconds, between runs of the pool&apos;s maintenance thread.</span><br><span class="line">spring.jta.atomikos.connectionfactory.max-idle-time=60 # The time, in seconds, after which connections are cleaned up from the pool.</span><br><span class="line">spring.jta.atomikos.connectionfactory.max-lifetime=0 # The time, in seconds, that a connection can be pooled for before being destroyed. 0 denotes no limit.</span><br><span class="line">spring.jta.atomikos.connectionfactory.max-pool-size=1 # The maximum size of the pool.</span><br><span class="line">spring.jta.atomikos.connectionfactory.min-pool-size=1 # The minimum size of the pool.</span><br><span class="line">spring.jta.atomikos.connectionfactory.reap-timeout=0 # The reap timeout, in seconds, for borrowed connections. 0 denotes no limit.</span><br><span class="line">spring.jta.atomikos.connectionfactory.unique-resource-name=jmsConnectionFactory # The unique name used to identify the resource during recovery.</span><br><span class="line">spring.jta.atomikos.datasource.borrow-connection-timeout=30 # Timeout, in seconds, for borrowing connections from the pool.</span><br><span class="line">spring.jta.atomikos.datasource.default-isolation-level= # Default isolation level of connections provided by the pool.</span><br><span class="line">spring.jta.atomikos.datasource.login-timeout= # Timeout, in seconds, for establishing a database connection.</span><br><span class="line">spring.jta.atomikos.datasource.maintenance-interval=60 # The time, in seconds, between runs of the pool&apos;s maintenance thread.</span><br><span class="line">spring.jta.atomikos.datasource.max-idle-time=60 # The time, in seconds, after which connections are cleaned up from the pool.</span><br><span class="line">spring.jta.atomikos.datasource.max-lifetime=0 # The time, in seconds, that a connection can be pooled for before being destroyed. 0 denotes no limit.</span><br><span class="line">spring.jta.atomikos.datasource.max-pool-size=1 # The maximum size of the pool.</span><br><span class="line">spring.jta.atomikos.datasource.min-pool-size=1 # The minimum size of the pool.</span><br><span class="line">spring.jta.atomikos.datasource.reap-timeout=0 # The reap timeout, in seconds, for borrowed connections. 0 denotes no limit.</span><br><span class="line">spring.jta.atomikos.datasource.test-query= # SQL query or statement used to validate a connection before returning it.</span><br><span class="line">spring.jta.atomikos.datasource.unique-resource-name=dataSource # The unique name used to identify the resource during recovery.</span><br><span class="line">spring.jta.atomikos.properties.checkpoint-interval=500 # Interval between checkpoints.</span><br><span class="line">spring.jta.atomikos.properties.default-jta-timeout=10000 # Default timeout for JTA transactions.</span><br><span class="line">spring.jta.atomikos.properties.enable-logging=true # Enable disk logging.</span><br><span class="line">spring.jta.atomikos.properties.force-shutdown-on-vm-exit=false # Specify if a VM shutdown should trigger forced shutdown of the transaction core.</span><br><span class="line">spring.jta.atomikos.properties.log-base-dir= # Directory in which the log files should be stored.</span><br><span class="line">spring.jta.atomikos.properties.log-base-name=tmlog # Transactions log file base name.</span><br><span class="line">spring.jta.atomikos.properties.max-actives=50 # Maximum number of active transactions.</span><br><span class="line">spring.jta.atomikos.properties.max-timeout=300000 # Maximum timeout (in milliseconds) that can be allowed for transactions.</span><br><span class="line">spring.jta.atomikos.properties.serial-jta-transactions=true # Specify if sub-transactions should be joined when possible.</span><br><span class="line">spring.jta.atomikos.properties.service= # Transaction manager implementation that should be started.</span><br><span class="line">spring.jta.atomikos.properties.threaded-two-phase-commit=false # Use different (and concurrent) threads for two-phase commit on the participating resources.</span><br><span class="line">spring.jta.atomikos.properties.transaction-manager-unique-name= # Transaction manager&apos;s unique name.</span><br><span class="line"></span><br><span class="line"># BITRONIX</span><br><span class="line">spring.jta.bitronix.connectionfactory.acquire-increment=1 # Number of connections to create when growing the pool.</span><br><span class="line">spring.jta.bitronix.connectionfactory.acquisition-interval=1 # Time, in seconds, to wait before trying to acquire a connection again after an invalid connection was acquired.</span><br><span class="line">spring.jta.bitronix.connectionfactory.acquisition-timeout=30 # Timeout, in seconds, for acquiring connections from the pool.</span><br><span class="line">spring.jta.bitronix.connectionfactory.allow-local-transactions=true # Whether or not the transaction manager should allow mixing XA and non-XA transactions.</span><br><span class="line">spring.jta.bitronix.connectionfactory.apply-transaction-timeout=false # Whether or not the transaction timeout should be set on the XAResource when it is enlisted.</span><br><span class="line">spring.jta.bitronix.connectionfactory.automatic-enlisting-enabled=true # Whether or not resources should be enlisted and delisted automatically.</span><br><span class="line">spring.jta.bitronix.connectionfactory.cache-producers-consumers=true # Whether or not produces and consumers should be cached.</span><br><span class="line">spring.jta.bitronix.connectionfactory.defer-connection-release=true # Whether or not the provider can run many transactions on the same connection and supports transaction interleaving.</span><br><span class="line">spring.jta.bitronix.connectionfactory.ignore-recovery-failures=false # Whether or not recovery failures should be ignored.</span><br><span class="line">spring.jta.bitronix.connectionfactory.max-idle-time=60 # The time, in seconds, after which connections are cleaned up from the pool.</span><br><span class="line">spring.jta.bitronix.connectionfactory.max-pool-size=10 # The maximum size of the pool. 0 denotes no limit.</span><br><span class="line">spring.jta.bitronix.connectionfactory.min-pool-size=0 # The minimum size of the pool.</span><br><span class="line">spring.jta.bitronix.connectionfactory.password= # The password to use to connect to the JMS provider.</span><br><span class="line">spring.jta.bitronix.connectionfactory.share-transaction-connections=false #  Whether or not connections in the ACCESSIBLE state can be shared within the context of a transaction.</span><br><span class="line">spring.jta.bitronix.connectionfactory.test-connections=true # Whether or not connections should be tested when acquired from the pool.</span><br><span class="line">spring.jta.bitronix.connectionfactory.two-pc-ordering-position=1 # The position that this resource should take during two-phase commit (always first is Integer.MIN_VALUE, always last is Integer.MAX_VALUE).</span><br><span class="line">spring.jta.bitronix.connectionfactory.unique-name=jmsConnectionFactory # The unique name used to identify the resource during recovery.</span><br><span class="line">spring.jta.bitronix.connectionfactory.use-tm-join=true Whether or not TMJOIN should be used when starting XAResources.</span><br><span class="line">spring.jta.bitronix.connectionfactory.user= # The user to use to connect to the JMS provider.</span><br><span class="line">spring.jta.bitronix.datasource.acquire-increment=1 # Number of connections to create when growing the pool.</span><br><span class="line">spring.jta.bitronix.datasource.acquisition-interval=1 # Time, in seconds, to wait before trying to acquire a connection again after an invalid connection was acquired.</span><br><span class="line">spring.jta.bitronix.datasource.acquisition-timeout=30 # Timeout, in seconds, for acquiring connections from the pool.</span><br><span class="line">spring.jta.bitronix.datasource.allow-local-transactions=true # Whether or not the transaction manager should allow mixing XA and non-XA transactions.</span><br><span class="line">spring.jta.bitronix.datasource.apply-transaction-timeout=false # Whether or not the transaction timeout should be set on the XAResource when it is enlisted.</span><br><span class="line">spring.jta.bitronix.datasource.automatic-enlisting-enabled=true # Whether or not resources should be enlisted and delisted automatically.</span><br><span class="line">spring.jta.bitronix.datasource.cursor-holdability= # The default cursor holdability for connections.</span><br><span class="line">spring.jta.bitronix.datasource.defer-connection-release=true # Whether or not the database can run many transactions on the same connection and supports transaction interleaving.</span><br><span class="line">spring.jta.bitronix.datasource.enable-jdbc4-connection-test= # Whether or not Connection.isValid() is called when acquiring a connection from the pool.</span><br><span class="line">spring.jta.bitronix.datasource.ignore-recovery-failures=false # Whether or not recovery failures should be ignored.</span><br><span class="line">spring.jta.bitronix.datasource.isolation-level= # The default isolation level for connections.</span><br><span class="line">spring.jta.bitronix.datasource.local-auto-commit= # The default auto-commit mode for local transactions.</span><br><span class="line">spring.jta.bitronix.datasource.login-timeout= # Timeout, in seconds, for establishing a database connection.</span><br><span class="line">spring.jta.bitronix.datasource.max-idle-time=60 # The time, in seconds, after which connections are cleaned up from the pool.</span><br><span class="line">spring.jta.bitronix.datasource.max-pool-size=10 # The maximum size of the pool. 0 denotes no limit.</span><br><span class="line">spring.jta.bitronix.datasource.min-pool-size=0 # The minimum size of the pool.</span><br><span class="line">spring.jta.bitronix.datasource.prepared-statement-cache-size=0 # The target size of the prepared statement cache. 0 disables the cache.</span><br><span class="line">spring.jta.bitronix.datasource.share-transaction-connections=false #  Whether or not connections in the ACCESSIBLE state can be shared within the context of a transaction.</span><br><span class="line">spring.jta.bitronix.datasource.test-query= # SQL query or statement used to validate a connection before returning it.</span><br><span class="line">spring.jta.bitronix.datasource.two-pc-ordering-position=1 # The position that this resource should take during two-phase commit (always first is Integer.MIN_VALUE, always last is Integer.MAX_VALUE).</span><br><span class="line">spring.jta.bitronix.datasource.unique-name=dataSource # The unique name used to identify the resource during recovery.</span><br><span class="line">spring.jta.bitronix.datasource.use-tm-join=true Whether or not TMJOIN should be used when starting XAResources.</span><br><span class="line">spring.jta.bitronix.properties.allow-multiple-lrc=false # Allow multiple LRC resources to be enlisted into the same transaction.</span><br><span class="line">spring.jta.bitronix.properties.asynchronous2-pc=false # Enable asynchronously execution of two phase commit.</span><br><span class="line">spring.jta.bitronix.properties.background-recovery-interval-seconds=60 # Interval in seconds at which to run the recovery process in the background.</span><br><span class="line">spring.jta.bitronix.properties.current-node-only-recovery=true # Recover only the current node.</span><br><span class="line">spring.jta.bitronix.properties.debug-zero-resource-transaction=false # Log the creation and commit call stacks of transactions executed without a single enlisted resource.</span><br><span class="line">spring.jta.bitronix.properties.default-transaction-timeout=60 # Default transaction timeout in seconds.</span><br><span class="line">spring.jta.bitronix.properties.disable-jmx=false # Enable JMX support.</span><br><span class="line">spring.jta.bitronix.properties.exception-analyzer= # Set the fully qualified name of the exception analyzer implementation to use.</span><br><span class="line">spring.jta.bitronix.properties.filter-log-status=false # Enable filtering of logs so that only mandatory logs are written.</span><br><span class="line">spring.jta.bitronix.properties.force-batching-enabled=true #  Set if disk forces are batched.</span><br><span class="line">spring.jta.bitronix.properties.forced-write-enabled=true # Set if logs are forced to disk.</span><br><span class="line">spring.jta.bitronix.properties.graceful-shutdown-interval=60 # Maximum amount of seconds the TM will wait for transactions to get done before aborting them at shutdown time.</span><br><span class="line">spring.jta.bitronix.properties.jndi-transaction-synchronization-registry-name= # JNDI name of the TransactionSynchronizationRegistry.</span><br><span class="line">spring.jta.bitronix.properties.jndi-user-transaction-name= # JNDI name of the UserTransaction.</span><br><span class="line">spring.jta.bitronix.properties.journal=disk # Name of the journal. Can be &apos;disk&apos;, &apos;null&apos; or a class name.</span><br><span class="line">spring.jta.bitronix.properties.log-part1-filename=btm1.tlog # Name of the first fragment of the journal.</span><br><span class="line">spring.jta.bitronix.properties.log-part2-filename=btm2.tlog # Name of the second fragment of the journal.</span><br><span class="line">spring.jta.bitronix.properties.max-log-size-in-mb=2 # Maximum size in megabytes of the journal fragments.</span><br><span class="line">spring.jta.bitronix.properties.resource-configuration-filename= # ResourceLoader configuration file name.</span><br><span class="line">spring.jta.bitronix.properties.server-id= # ASCII ID that must uniquely identify this TM instance. Default to the machine&apos;s IP address.</span><br><span class="line">spring.jta.bitronix.properties.skip-corrupted-logs=false # Skip corrupted transactions log entries.</span><br><span class="line">spring.jta.bitronix.properties.warn-about-zero-resource-transaction=true # Log a warning for transactions executed without a single enlisted resource.</span><br><span class="line"></span><br><span class="line"># NARAYANA (NarayanaProperties)</span><br><span class="line">spring.jta.narayana.default-timeout=60 # Transaction timeout in seconds.</span><br><span class="line">spring.jta.narayana.expiry-scanners=com.arjuna.ats.internal.arjuna.recovery.ExpiredTransactionStatusManagerScanner # Comma-separated list of expiry scanners.</span><br><span class="line">spring.jta.narayana.log-dir= # Transaction object store directory.</span><br><span class="line">spring.jta.narayana.one-phase-commit=true # Enable one phase commit optimisation.</span><br><span class="line">spring.jta.narayana.periodic-recovery-period=120 # Interval in which periodic recovery scans are performed in seconds.</span><br><span class="line">spring.jta.narayana.recovery-backoff-period=10 # Back off period between first and second phases of the recovery scan in seconds.</span><br><span class="line">spring.jta.narayana.recovery-db-pass= # Database password to be used by recovery manager.</span><br><span class="line">spring.jta.narayana.recovery-db-user= # Database username to be used by recovery manager.</span><br><span class="line">spring.jta.narayana.recovery-jms-pass= # JMS password to be used by recovery manager.</span><br><span class="line">spring.jta.narayana.recovery-jms-user= # JMS username to be used by recovery manager.</span><br><span class="line">spring.jta.narayana.recovery-modules= # Comma-separated list of recovery modules.</span><br><span class="line">spring.jta.narayana.transaction-manager-id=1 # Unique transaction manager id.</span><br><span class="line">spring.jta.narayana.xa-resource-orphan-filters= # Comma-separated list of orphan filters.</span><br><span class="line"></span><br><span class="line"># EMBEDDED MONGODB (EmbeddedMongoProperties)</span><br><span class="line">spring.mongodb.embedded.features=SYNC_DELAY # Comma-separated list of features to enable.</span><br><span class="line">spring.mongodb.embedded.storage.database-dir= # Directory used for data storage.</span><br><span class="line">spring.mongodb.embedded.storage.oplog-size= # Maximum size of the oplog in megabytes.</span><br><span class="line">spring.mongodb.embedded.storage.repl-set-name= # Name of the replica set.</span><br><span class="line">spring.mongodb.embedded.version=2.6.10 # Version of Mongo to use.</span><br><span class="line"></span><br><span class="line"># REDIS (RedisProperties)</span><br><span class="line">spring.redis.cluster.max-redirects= # Maximum number of redirects to follow when executing commands across the cluster.</span><br><span class="line">spring.redis.cluster.nodes= # Comma-separated list of &quot;host:port&quot; pairs to bootstrap from.</span><br><span class="line">spring.redis.database=0 # Database index used by the connection factory.</span><br><span class="line">spring.redis.url= # Connection URL, will override host, port and password (user will be ignored), e.g. redis://user:password@example.com:6379</span><br><span class="line">spring.redis.host=localhost # Redis server host.</span><br><span class="line">spring.redis.password= # Login password of the redis server.</span><br><span class="line">spring.redis.ssl=false # Enable SSL support.</span><br><span class="line">spring.redis.pool.max-active=8 # Max number of connections that can be allocated by the pool at a given time. Use a negative value for no limit.</span><br><span class="line">spring.redis.pool.max-idle=8 # Max number of &quot;idle&quot; connections in the pool. Use a negative value to indicate an unlimited number of idle connections.</span><br><span class="line">spring.redis.pool.max-wait=-1 # Maximum amount of time (in milliseconds) a connection allocation should block before throwing an exception when the pool is exhausted. Use a negative value to block indefinitely.</span><br><span class="line">spring.redis.pool.min-idle=0 # Target for the minimum number of idle connections to maintain in the pool. This setting only has an effect if it is positive.</span><br><span class="line">spring.redis.port=6379 # Redis server port.</span><br><span class="line">spring.redis.sentinel.master= # Name of Redis server.</span><br><span class="line">spring.redis.sentinel.nodes= # Comma-separated list of host:port pairs.</span><br><span class="line">spring.redis.timeout=0 # Connection timeout in milliseconds.</span><br><span class="line"></span><br><span class="line"># TRANSACTION (TransactionProperties)</span><br><span class="line">spring.transaction.default-timeout= # Default transaction timeout in seconds.</span><br><span class="line">spring.transaction.rollback-on-commit-failure= # Perform the rollback on commit failures.</span><br><span class="line"></span><br><span class="line"></span><br><span class="line"></span><br><span class="line"># ----------------------------------------</span><br><span class="line"># INTEGRATION PROPERTIES</span><br><span class="line"># ----------------------------------------</span><br><span class="line"></span><br><span class="line"># ACTIVEMQ (ActiveMQProperties)</span><br><span class="line">spring.activemq.broker-url= # URL of the ActiveMQ broker. Auto-generated by default.</span><br><span class="line">spring.activemq.close-timeout=15000 # Time to wait, in milliseconds, before considering a close complete.</span><br><span class="line">spring.activemq.in-memory=true # Specify if the default broker URL should be in memory. Ignored if an explicit broker has been specified.</span><br><span class="line">spring.activemq.non-blocking-redelivery=false # Do not stop message delivery before re-delivering messages from a rolled back transaction. This implies that message order will not be preserved when this is enabled.</span><br><span class="line">spring.activemq.password= # Login password of the broker.</span><br><span class="line">spring.activemq.send-timeout=0 # Time to wait, in milliseconds, on Message sends for a response. Set it to 0 to indicate to wait forever.</span><br><span class="line">spring.activemq.user= # Login user of the broker.</span><br><span class="line">spring.activemq.packages.trust-all= # Trust all packages.</span><br><span class="line">spring.activemq.packages.trusted= # Comma-separated list of specific packages to trust (when not trusting all packages).</span><br><span class="line">spring.activemq.pool.block-if-full=true # Block when a connection is requested and the pool is full. Set it to false to throw a &quot;JMSException&quot; instead.</span><br><span class="line">spring.activemq.pool.block-if-full-timeout=-1 # Blocking period, in milliseconds, before throwing an exception if the pool is still full.</span><br><span class="line">spring.activemq.pool.create-connection-on-startup=true # Create a connection on startup. Can be used to warm-up the pool on startup.</span><br><span class="line">spring.activemq.pool.enabled=false # Whether a PooledConnectionFactory should be created instead of a regular ConnectionFactory.</span><br><span class="line">spring.activemq.pool.expiry-timeout=0 # Connection expiration timeout in milliseconds.</span><br><span class="line">spring.activemq.pool.idle-timeout=30000 # Connection idle timeout in milliseconds.</span><br><span class="line">spring.activemq.pool.max-connections=1 # Maximum number of pooled connections.</span><br><span class="line">spring.activemq.pool.maximum-active-session-per-connection=500 # Maximum number of active sessions per connection.</span><br><span class="line">spring.activemq.pool.reconnect-on-exception=true # Reset the connection when a &quot;JMXException&quot; occurs.</span><br><span class="line">spring.activemq.pool.time-between-expiration-check=-1 # Time to sleep, in milliseconds, between runs of the idle connection eviction thread. When negative, no idle connection eviction thread runs.</span><br><span class="line">spring.activemq.pool.use-anonymous-producers=true # Use only one anonymous &quot;MessageProducer&quot; instance. Set it to false to create one &quot;MessageProducer&quot; every time one is required.</span><br><span class="line"></span><br><span class="line"># ARTEMIS (ArtemisProperties)</span><br><span class="line">spring.artemis.embedded.cluster-password= # Cluster password. Randomly generated on startup by default.</span><br><span class="line">spring.artemis.embedded.data-directory= # Journal file directory. Not necessary if persistence is turned off.</span><br><span class="line">spring.artemis.embedded.enabled=true # Enable embedded mode if the Artemis server APIs are available.</span><br><span class="line">spring.artemis.embedded.persistent=false # Enable persistent store.</span><br><span class="line">spring.artemis.embedded.queues= # Comma-separated list of queues to create on startup.</span><br><span class="line">spring.artemis.embedded.server-id= # Server id. By default, an auto-incremented counter is used.</span><br><span class="line">spring.artemis.embedded.topics= # Comma-separated list of topics to create on startup.</span><br><span class="line">spring.artemis.host=localhost # Artemis broker host.</span><br><span class="line">spring.artemis.mode= # Artemis deployment mode, auto-detected by default.</span><br><span class="line">spring.artemis.password= # Login password of the broker.</span><br><span class="line">spring.artemis.port=61616 # Artemis broker port.</span><br><span class="line">spring.artemis.user= # Login user of the broker.</span><br><span class="line"></span><br><span class="line"># SPRING BATCH (BatchProperties)</span><br><span class="line">spring.batch.initializer.enabled= # Create the required batch tables on startup if necessary. Enabled automatically if no custom table prefix is set or if a custom schema is configured.</span><br><span class="line">spring.batch.job.enabled=true # Execute all Spring Batch jobs in the context on startup.</span><br><span class="line">spring.batch.job.names= # Comma-separated list of job names to execute on startup (For instance `job1,job2`). By default, all Jobs found in the context are executed.</span><br><span class="line">spring.batch.schema=classpath:org/springframework/batch/core/schema-@@platform@@.sql # Path to the SQL file to use to initialize the database schema.</span><br><span class="line">spring.batch.table-prefix= # Table prefix for all the batch meta-data tables.</span><br><span class="line"></span><br><span class="line"># JMS (JmsProperties)</span><br><span class="line">spring.jms.jndi-name= # Connection factory JNDI name. When set, takes precedence to others connection factory auto-configurations.</span><br><span class="line">spring.jms.listener.acknowledge-mode= # Acknowledge mode of the container. By default, the listener is transacted with automatic acknowledgment.</span><br><span class="line">spring.jms.listener.auto-startup=true # Start the container automatically on startup.</span><br><span class="line">spring.jms.listener.concurrency= # Minimum number of concurrent consumers.</span><br><span class="line">spring.jms.listener.max-concurrency= # Maximum number of concurrent consumers.</span><br><span class="line">spring.jms.pub-sub-domain=false # Specify if the default destination type is topic.</span><br><span class="line">spring.jms.template.default-destination= # Default destination to use on send/receive operations that do not have a destination parameter.</span><br><span class="line">spring.jms.template.delivery-delay= # Delivery delay to use for send calls in milliseconds.</span><br><span class="line">spring.jms.template.delivery-mode= # Delivery mode. Enable QoS when set.</span><br><span class="line">spring.jms.template.priority= # Priority of a message when sending. Enable QoS when set.</span><br><span class="line">spring.jms.template.qos-enabled= # Enable explicit QoS when sending a message.</span><br><span class="line">spring.jms.template.receive-timeout= # Timeout to use for receive calls in milliseconds.</span><br><span class="line">spring.jms.template.time-to-live= # Time-to-live of a message when sending in milliseconds. Enable QoS when set.</span><br><span class="line"></span><br><span class="line"># APACHE KAFKA (KafkaProperties)</span><br><span class="line">spring.kafka.bootstrap-servers= # Comma-delimited list of host:port pairs to use for establishing the initial connection to the Kafka cluster.</span><br><span class="line">spring.kafka.client-id= # Id to pass to the server when making requests; used for server-side logging.</span><br><span class="line">spring.kafka.consumer.auto-commit-interval= # Frequency in milliseconds that the consumer offsets are auto-committed to Kafka if &apos;enable.auto.commit&apos; true.</span><br><span class="line">spring.kafka.consumer.auto-offset-reset= # What to do when there is no initial offset in Kafka or if the current offset does not exist any more on the server.</span><br><span class="line">spring.kafka.consumer.bootstrap-servers= # Comma-delimited list of host:port pairs to use for establishing the initial connection to the Kafka cluster.</span><br><span class="line">spring.kafka.consumer.client-id= # Id to pass to the server when making requests; used for server-side logging.</span><br><span class="line">spring.kafka.consumer.enable-auto-commit= # If true the consumer&apos;s offset will be periodically committed in the background.</span><br><span class="line">spring.kafka.consumer.fetch-max-wait= # Maximum amount of time in milliseconds the server will block before answering the fetch request if there isn&apos;t sufficient data to immediately satisfy the requirement given by &quot;fetch.min.bytes&quot;.</span><br><span class="line">spring.kafka.consumer.fetch-min-size= # Minimum amount of data the server should return for a fetch request in bytes.</span><br><span class="line">spring.kafka.consumer.group-id= # Unique string that identifies the consumer group this consumer belongs to.</span><br><span class="line">spring.kafka.consumer.heartbeat-interval= # Expected time in milliseconds between heartbeats to the consumer coordinator.</span><br><span class="line">spring.kafka.consumer.key-deserializer= # Deserializer class for keys.</span><br><span class="line">spring.kafka.consumer.max-poll-records= # Maximum number of records returned in a single call to poll().</span><br><span class="line">spring.kafka.consumer.value-deserializer= # Deserializer class for values.</span><br><span class="line">spring.kafka.listener.ack-count= # Number of records between offset commits when ackMode is &quot;COUNT&quot; or &quot;COUNT_TIME&quot;.</span><br><span class="line">spring.kafka.listener.ack-mode= # Listener AckMode; see the spring-kafka documentation.</span><br><span class="line">spring.kafka.listener.ack-time= # Time in milliseconds between offset commits when ackMode is &quot;TIME&quot; or &quot;COUNT_TIME&quot;.</span><br><span class="line">spring.kafka.listener.concurrency= # Number of threads to run in the listener containers.</span><br><span class="line">spring.kafka.listener.poll-timeout= # Timeout in milliseconds to use when polling the consumer.</span><br><span class="line">spring.kafka.producer.acks= # Number of acknowledgments the producer requires the leader to have received before considering a request complete.</span><br><span class="line">spring.kafka.producer.batch-size= # Default batch size in bytes.</span><br><span class="line">spring.kafka.producer.bootstrap-servers= # Comma-delimited list of host:port pairs to use for establishing the initial connection to the Kafka cluster.</span><br><span class="line">spring.kafka.producer.buffer-memory= # Total bytes of memory the producer can use to buffer records waiting to be sent to the server.</span><br><span class="line">spring.kafka.producer.client-id= # Id to pass to the server when making requests; used for server-side logging.</span><br><span class="line">spring.kafka.producer.compression-type= # Compression type for all data generated by the producer.</span><br><span class="line">spring.kafka.producer.key-serializer= # Serializer class for keys.</span><br><span class="line">spring.kafka.producer.retries= # When greater than zero, enables retrying of failed sends.</span><br><span class="line">spring.kafka.producer.value-serializer= # Serializer class for values.</span><br><span class="line">spring.kafka.properties.*= # Additional properties used to configure the client.</span><br><span class="line">spring.kafka.ssl.key-password= # Password of the private key in the key store file.</span><br><span class="line">spring.kafka.ssl.keystore-location= # Location of the key store file.</span><br><span class="line">spring.kafka.ssl.keystore-password= # Store password for the key store file.</span><br><span class="line">spring.kafka.ssl.truststore-location= # Location of the trust store file.</span><br><span class="line">spring.kafka.ssl.truststore-password= # Store password for the trust store file.</span><br><span class="line">spring.kafka.template.default-topic= # Default topic to which messages will be sent.</span><br><span class="line"></span><br><span class="line"># RABBIT (RabbitProperties)</span><br><span class="line">spring.rabbitmq.addresses= # Comma-separated list of addresses to which the client should connect.</span><br><span class="line">spring.rabbitmq.cache.channel.checkout-timeout= # Number of milliseconds to wait to obtain a channel if the cache size has been reached.</span><br><span class="line">spring.rabbitmq.cache.channel.size= # Number of channels to retain in the cache.</span><br><span class="line">spring.rabbitmq.cache.connection.mode=channel # Connection factory cache mode.</span><br><span class="line">spring.rabbitmq.cache.connection.size= # Number of connections to cache.</span><br><span class="line">spring.rabbitmq.connection-timeout= # Connection timeout, in milliseconds; zero for infinite.</span><br><span class="line">spring.rabbitmq.dynamic=true # Create an AmqpAdmin bean.</span><br><span class="line">spring.rabbitmq.host=localhost # RabbitMQ host.</span><br><span class="line">spring.rabbitmq.listener.simple.acknowledge-mode= # Acknowledge mode of container.</span><br><span class="line">spring.rabbitmq.listener.simple.auto-startup=true # Start the container automatically on startup.</span><br><span class="line">spring.rabbitmq.listener.simple.concurrency= # Minimum number of consumers.</span><br><span class="line">spring.rabbitmq.listener.simple.default-requeue-rejected= # Whether or not to requeue delivery failures; default `true`.</span><br><span class="line">spring.rabbitmq.listener.simple.idle-event-interval= # How often idle container events should be published in milliseconds.</span><br><span class="line">spring.rabbitmq.listener.simple.max-concurrency= # Maximum number of consumers.</span><br><span class="line">spring.rabbitmq.listener.simple.prefetch= # Number of messages to be handled in a single request. It should be greater than or equal to the transaction size (if used).</span><br><span class="line">spring.rabbitmq.listener.simple.retry.enabled=false # Whether or not publishing retries are enabled.</span><br><span class="line">spring.rabbitmq.listener.simple.retry.initial-interval=1000 # Interval between the first and second attempt to deliver a message.</span><br><span class="line">spring.rabbitmq.listener.simple.retry.max-attempts=3 # Maximum number of attempts to deliver a message.</span><br><span class="line">spring.rabbitmq.listener.simple.retry.max-interval=10000 # Maximum interval between attempts.</span><br><span class="line">spring.rabbitmq.listener.simple.retry.multiplier=1.0 # A multiplier to apply to the previous delivery retry interval.</span><br><span class="line">spring.rabbitmq.listener.simple.retry.stateless=true # Whether or not retry is stateless or stateful.</span><br><span class="line">spring.rabbitmq.listener.simple.transaction-size= # Number of messages to be processed in a transaction. For best results it should be less than or equal to the prefetch count.</span><br><span class="line">spring.rabbitmq.password= # Login to authenticate against the broker.</span><br><span class="line">spring.rabbitmq.port=5672 # RabbitMQ port.</span><br><span class="line">spring.rabbitmq.publisher-confirms=false # Enable publisher confirms.</span><br><span class="line">spring.rabbitmq.publisher-returns=false # Enable publisher returns.</span><br><span class="line">spring.rabbitmq.requested-heartbeat= # Requested heartbeat timeout, in seconds; zero for none.</span><br><span class="line">spring.rabbitmq.ssl.enabled=false # Enable SSL support.</span><br><span class="line">spring.rabbitmq.ssl.key-store= # Path to the key store that holds the SSL certificate.</span><br><span class="line">spring.rabbitmq.ssl.key-store-password= # Password used to access the key store.</span><br><span class="line">spring.rabbitmq.ssl.trust-store= # Trust store that holds SSL certificates.</span><br><span class="line">spring.rabbitmq.ssl.trust-store-password= # Password used to access the trust store.</span><br><span class="line">spring.rabbitmq.ssl.algorithm= # SSL algorithm to use. By default configure by the rabbit client library.</span><br><span class="line">spring.rabbitmq.template.mandatory=false # Enable mandatory messages.</span><br><span class="line">spring.rabbitmq.template.receive-timeout=0 # Timeout for `receive()` methods.</span><br><span class="line">spring.rabbitmq.template.reply-timeout=5000 # Timeout for `sendAndReceive()` methods.</span><br><span class="line">spring.rabbitmq.template.retry.enabled=false # Set to true to enable retries in the `RabbitTemplate`.</span><br><span class="line">spring.rabbitmq.template.retry.initial-interval=1000 # Interval between the first and second attempt to publish a message.</span><br><span class="line">spring.rabbitmq.template.retry.max-attempts=3 # Maximum number of attempts to publish a message.</span><br><span class="line">spring.rabbitmq.template.retry.max-interval=10000 # Maximum number of attempts to publish a message.</span><br><span class="line">spring.rabbitmq.template.retry.multiplier=1.0 # A multiplier to apply to the previous publishing retry interval.</span><br><span class="line">spring.rabbitmq.username= # Login user to authenticate to the broker.</span><br><span class="line">spring.rabbitmq.virtual-host= # Virtual host to use when connecting to the broker.</span><br><span class="line"></span><br><span class="line"></span><br><span class="line"># ----------------------------------------</span><br><span class="line"># ACTUATOR PROPERTIES</span><br><span class="line"># ----------------------------------------</span><br><span class="line"></span><br><span class="line"># ENDPOINTS (AbstractEndpoint subclasses)</span><br><span class="line">endpoints.enabled=true # Enable endpoints.</span><br><span class="line">endpoints.sensitive= # Default endpoint sensitive setting.</span><br><span class="line">endpoints.actuator.enabled=true # Enable the endpoint.</span><br><span class="line">endpoints.actuator.path= # Endpoint URL path.</span><br><span class="line">endpoints.actuator.sensitive=false # Enable security on the endpoint.</span><br><span class="line">endpoints.auditevents.enabled= # Enable the endpoint.</span><br><span class="line">endpoints.auditevents.path= # Endpoint path.</span><br><span class="line">endpoints.auditevents.sensitive=false # Enable security on the endpoint.</span><br><span class="line">endpoints.autoconfig.enabled= # Enable the endpoint.</span><br><span class="line">endpoints.autoconfig.id= # Endpoint identifier.</span><br><span class="line">endpoints.autoconfig.path= # Endpoint path.</span><br><span class="line">endpoints.autoconfig.sensitive= # Mark if the endpoint exposes sensitive information.</span><br><span class="line">endpoints.beans.enabled= # Enable the endpoint.</span><br><span class="line">endpoints.beans.id= # Endpoint identifier.</span><br><span class="line">endpoints.beans.path= # Endpoint path.</span><br><span class="line">endpoints.beans.sensitive= # Mark if the endpoint exposes sensitive information.</span><br><span class="line">endpoints.configprops.enabled= # Enable the endpoint.</span><br><span class="line">endpoints.configprops.id= # Endpoint identifier.</span><br><span class="line">endpoints.configprops.keys-to-sanitize=password,secret,key,token,.*credentials.*,vcap_services,sun.java.command # Keys that should be sanitized. Keys can be simple strings that the property ends with or regex expressions.</span><br><span class="line">endpoints.configprops.path= # Endpoint path.</span><br><span class="line">endpoints.configprops.sensitive= # Mark if the endpoint exposes sensitive information.</span><br><span class="line">endpoints.docs.curies.enabled=false # Enable the curie generation.</span><br><span class="line">endpoints.docs.enabled=true # Enable actuator docs endpoint.</span><br><span class="line">endpoints.docs.path=/docs #</span><br><span class="line">endpoints.docs.sensitive=false #</span><br><span class="line">endpoints.dump.enabled= # Enable the endpoint.</span><br><span class="line">endpoints.dump.id= # Endpoint identifier.</span><br><span class="line">endpoints.dump.path= # Endpoint path.</span><br><span class="line">endpoints.dump.sensitive= # Mark if the endpoint exposes sensitive information.</span><br><span class="line">endpoints.env.enabled= # Enable the endpoint.</span><br><span class="line">endpoints.env.id= # Endpoint identifier.</span><br><span class="line">endpoints.env.keys-to-sanitize=password,secret,key,token,.*credentials.*,vcap_services,sun.java.command # Keys that should be sanitized. Keys can be simple strings that the property ends with or regex expressions.</span><br><span class="line">endpoints.env.path= # Endpoint path.</span><br><span class="line">endpoints.env.sensitive= # Mark if the endpoint exposes sensitive information.</span><br><span class="line">endpoints.flyway.enabled= # Enable the endpoint.</span><br><span class="line">endpoints.flyway.id= # Endpoint identifier.</span><br><span class="line">endpoints.flyway.sensitive= # Mark if the endpoint exposes sensitive information.</span><br><span class="line">endpoints.health.enabled= # Enable the endpoint.</span><br><span class="line">endpoints.health.id= # Endpoint identifier.</span><br><span class="line">endpoints.health.mapping.*= # Mapping of health statuses to HTTP status codes. By default, registered health statuses map to sensible defaults (i.e. UP maps to 200).</span><br><span class="line">endpoints.health.path= # Endpoint path.</span><br><span class="line">endpoints.health.sensitive= # Mark if the endpoint exposes sensitive information.</span><br><span class="line">endpoints.health.time-to-live=1000 # Time to live for cached result, in milliseconds.</span><br><span class="line">endpoints.heapdump.enabled= # Enable the endpoint.</span><br><span class="line">endpoints.heapdump.path= # Endpoint path.</span><br><span class="line">endpoints.heapdump.sensitive= # Mark if the endpoint exposes sensitive information.</span><br><span class="line">endpoints.hypermedia.enabled=false # Enable hypermedia support for endpoints.</span><br><span class="line">endpoints.info.enabled= # Enable the endpoint.</span><br><span class="line">endpoints.info.id= # Endpoint identifier.</span><br><span class="line">endpoints.info.path= # Endpoint path.</span><br><span class="line">endpoints.info.sensitive= # Mark if the endpoint exposes sensitive information.</span><br><span class="line">endpoints.jolokia.enabled=true # Enable Jolokia endpoint.</span><br><span class="line">endpoints.jolokia.path=/jolokia # Endpoint URL path.</span><br><span class="line">endpoints.jolokia.sensitive=true # Enable security on the endpoint.</span><br><span class="line">endpoints.liquibase.enabled= # Enable the endpoint.</span><br><span class="line">endpoints.liquibase.id= # Endpoint identifier.</span><br><span class="line">endpoints.liquibase.sensitive= # Mark if the endpoint exposes sensitive information.</span><br><span class="line">endpoints.logfile.enabled=true # Enable the endpoint.</span><br><span class="line">endpoints.logfile.external-file= # External Logfile to be accessed.</span><br><span class="line">endpoints.logfile.path=/logfile # Endpoint URL path.</span><br><span class="line">endpoints.logfile.sensitive=true # Enable security on the endpoint.</span><br><span class="line">endpoints.loggers.enabled=true # Enable the endpoint.</span><br><span class="line">endpoints.loggers.id= # Endpoint identifier.</span><br><span class="line">endpoints.loggers.path=/logfile # Endpoint path.</span><br><span class="line">endpoints.loggers.sensitive=true # Mark if the endpoint exposes sensitive information.</span><br><span class="line">endpoints.mappings.enabled= # Enable the endpoint.</span><br><span class="line">endpoints.mappings.id= # Endpoint identifier.</span><br><span class="line">endpoints.mappings.path= # Endpoint path.</span><br><span class="line">endpoints.mappings.sensitive= # Mark if the endpoint exposes sensitive information.</span><br><span class="line">endpoints.metrics.enabled= # Enable the endpoint.</span><br><span class="line">endpoints.metrics.filter.enabled=true # Enable the metrics servlet filter.</span><br><span class="line">endpoints.metrics.filter.gauge-submissions=merged # Http filter gauge submissions (merged, per-http-method)</span><br><span class="line">endpoints.metrics.filter.counter-submissions=merged # Http filter counter submissions (merged, per-http-method)</span><br><span class="line">endpoints.metrics.id= # Endpoint identifier.</span><br><span class="line">endpoints.metrics.path= # Endpoint path.</span><br><span class="line">endpoints.metrics.sensitive= # Mark if the endpoint exposes sensitive information.</span><br><span class="line">endpoints.shutdown.enabled= # Enable the endpoint.</span><br><span class="line">endpoints.shutdown.id= # Endpoint identifier.</span><br><span class="line">endpoints.shutdown.path= # Endpoint path.</span><br><span class="line">endpoints.shutdown.sensitive= # Mark if the endpoint exposes sensitive information.</span><br><span class="line">endpoints.trace.enabled= # Enable the endpoint.</span><br><span class="line">endpoints.trace.filter.enabled=true # Enable the trace servlet filter.</span><br><span class="line">endpoints.trace.id= # Endpoint identifier.</span><br><span class="line">endpoints.trace.path= # Endpoint path.</span><br><span class="line">endpoints.trace.sensitive= # Mark if the endpoint exposes sensitive information.</span><br><span class="line"></span><br><span class="line"># ENDPOINTS CORS CONFIGURATION (EndpointCorsProperties)</span><br><span class="line">endpoints.cors.allow-credentials= # Set whether credentials are supported. When not set, credentials are not supported.</span><br><span class="line">endpoints.cors.allowed-headers= # Comma-separated list of headers to allow in a request. &apos;*&apos; allows all headers.</span><br><span class="line">endpoints.cors.allowed-methods=GET # Comma-separated list of methods to allow. &apos;*&apos; allows all methods.</span><br><span class="line">endpoints.cors.allowed-origins= # Comma-separated list of origins to allow. &apos;*&apos; allows all origins. When not set, CORS support is disabled.</span><br><span class="line">endpoints.cors.exposed-headers= # Comma-separated list of headers to include in a response.</span><br><span class="line">endpoints.cors.max-age=1800 # How long, in seconds, the response from a pre-flight request can be cached by clients.</span><br><span class="line"></span><br><span class="line"># JMX ENDPOINT (EndpointMBeanExportProperties)</span><br><span class="line">endpoints.jmx.domain= # JMX domain name. Initialized with the value of &apos;spring.jmx.default-domain&apos; if set.</span><br><span class="line">endpoints.jmx.enabled=true # Enable JMX export of all endpoints.</span><br><span class="line">endpoints.jmx.static-names= # Additional static properties to append to all ObjectNames of MBeans representing Endpoints.</span><br><span class="line">endpoints.jmx.unique-names=false # Ensure that ObjectNames are modified in case of conflict.</span><br><span class="line"></span><br><span class="line"># JOLOKIA (JolokiaProperties)</span><br><span class="line">jolokia.config.*= # See Jolokia manual</span><br><span class="line"></span><br><span class="line"># MANAGEMENT HTTP SERVER (ManagementServerProperties)</span><br><span class="line">management.add-application-context-header=true # Add the &quot;X-Application-Context&quot; HTTP header in each response.</span><br><span class="line">management.address= # Network address that the management endpoints should bind to.</span><br><span class="line">management.context-path= # Management endpoint context-path. For instance `/actuator`</span><br><span class="line">management.cloudfoundry.enabled= # Enable extended Cloud Foundry actuator endpoints</span><br><span class="line">management.cloudfoundry.skip-ssl-validation= # Skip SSL verification for Cloud Foundry actuator endpoint security calls</span><br><span class="line">management.port= # Management endpoint HTTP port. Uses the same port as the application by default. Configure a different port to use management-specific SSL.</span><br><span class="line">management.security.enabled=true # Enable security.</span><br><span class="line">management.security.roles=ACTUATOR # Comma-separated list of roles that can access the management endpoint.</span><br><span class="line">management.security.sessions=stateless # Session creating policy to use (always, never, if_required, stateless).</span><br><span class="line">management.ssl.ciphers= # Supported SSL ciphers. Requires a custom management.port.</span><br><span class="line">management.ssl.client-auth= # Whether client authentication is wanted (&quot;want&quot;) or needed (&quot;need&quot;). Requires a trust store. Requires a custom management.port.</span><br><span class="line">management.ssl.enabled= # Enable SSL support. Requires a custom management.port.</span><br><span class="line">management.ssl.enabled-protocols= # Enabled SSL protocols. Requires a custom management.port.</span><br><span class="line">management.ssl.key-alias= # Alias that identifies the key in the key store. Requires a custom management.port.</span><br><span class="line">management.ssl.key-password= # Password used to access the key in the key store. Requires a custom management.port.</span><br><span class="line">management.ssl.key-store= # Path to the key store that holds the SSL certificate (typically a jks file). Requires a custom management.port.</span><br><span class="line">management.ssl.key-store-password= # Password used to access the key store. Requires a custom management.port.</span><br><span class="line">management.ssl.key-store-provider= # Provider for the key store. Requires a custom management.port.</span><br><span class="line">management.ssl.key-store-type= # Type of the key store. Requires a custom management.port.</span><br><span class="line">management.ssl.protocol=TLS # SSL protocol to use. Requires a custom management.port.</span><br><span class="line">management.ssl.trust-store= # Trust store that holds SSL certificates. Requires a custom management.port.</span><br><span class="line">management.ssl.trust-store-password= # Password used to access the trust store. Requires a custom management.port.</span><br><span class="line">management.ssl.trust-store-provider= # Provider for the trust store. Requires a custom management.port.</span><br><span class="line">management.ssl.trust-store-type= # Type of the trust store. Requires a custom management.port.</span><br><span class="line"></span><br><span class="line"># HEALTH INDICATORS</span><br><span class="line">management.health.db.enabled=true # Enable database health check.</span><br><span class="line">management.health.cassandra.enabled=true # Enable cassandra health check.</span><br><span class="line">management.health.couchbase.enabled=true # Enable couchbase health check.</span><br><span class="line">management.health.defaults.enabled=true # Enable default health indicators.</span><br><span class="line">management.health.diskspace.enabled=true # Enable disk space health check.</span><br><span class="line">management.health.diskspace.path= # Path used to compute the available disk space.</span><br><span class="line">management.health.diskspace.threshold=0 # Minimum disk space that should be available, in bytes.</span><br><span class="line">management.health.elasticsearch.enabled=true # Enable elasticsearch health check.</span><br><span class="line">management.health.elasticsearch.indices= # Comma-separated index names.</span><br><span class="line">management.health.elasticsearch.response-timeout=100 # The time, in milliseconds, to wait for a response from the cluster.</span><br><span class="line">management.health.jms.enabled=true # Enable JMS health check.</span><br><span class="line">management.health.ldap.enabled=true # Enable LDAP health check.</span><br><span class="line">management.health.mail.enabled=true # Enable Mail health check.</span><br><span class="line">management.health.mongo.enabled=true # Enable MongoDB health check.</span><br><span class="line">management.health.rabbit.enabled=true # Enable RabbitMQ health check.</span><br><span class="line">management.health.redis.enabled=true # Enable Redis health check.</span><br><span class="line">management.health.solr.enabled=true # Enable Solr health check.</span><br><span class="line">management.health.status.order=DOWN, OUT_OF_SERVICE, UP, UNKNOWN # Comma-separated list of health statuses in order of severity.</span><br><span class="line"></span><br><span class="line"># INFO CONTRIBUTORS (InfoContributorProperties)</span><br><span class="line">management.info.build.enabled=true # Enable build info.</span><br><span class="line">management.info.defaults.enabled=true # Enable default info contributors.</span><br><span class="line">management.info.env.enabled=true # Enable environment info.</span><br><span class="line">management.info.git.enabled=true # Enable git info.</span><br><span class="line">management.info.git.mode=simple # Mode to use to expose git information.</span><br><span class="line"></span><br><span class="line"># REMOTE SHELL (ShellProperties)</span><br><span class="line">management.shell.auth.type=simple # Authentication type. Auto-detected according to the environment.</span><br><span class="line">management.shell.auth.jaas.domain=my-domain # JAAS domain.</span><br><span class="line">management.shell.auth.key.path= # Path to the authentication key. This should point to a valid &quot;.pem&quot; file.</span><br><span class="line">management.shell.auth.simple.user.name=user # Login user.</span><br><span class="line">management.shell.auth.simple.user.password= # Login password.</span><br><span class="line">management.shell.auth.spring.roles=ACTUATOR # Comma-separated list of required roles to login to the CRaSH console.</span><br><span class="line">management.shell.command-path-patterns=classpath*:/commands/**,classpath*:/crash/commands/** # Patterns to use to look for commands.</span><br><span class="line">management.shell.command-refresh-interval=-1 # Scan for changes and update the command if necessary (in seconds).</span><br><span class="line">management.shell.config-path-patterns=classpath*:/crash/* # Patterns to use to look for configurations.</span><br><span class="line">management.shell.disabled-commands=jpa*,jdbc*,jndi* # Comma-separated list of commands to disable.</span><br><span class="line">management.shell.disabled-plugins= # Comma-separated list of plugins to disable. Certain plugins are disabled by default based on the environment.</span><br><span class="line">management.shell.ssh.auth-timeout = # Number of milliseconds after user will be prompted to login again.</span><br><span class="line">management.shell.ssh.enabled=true # Enable CRaSH SSH support.</span><br><span class="line">management.shell.ssh.idle-timeout = # Number of milliseconds after which unused connections are closed.</span><br><span class="line">management.shell.ssh.key-path= # Path to the SSH server key.</span><br><span class="line">management.shell.ssh.port=2000 # SSH port.</span><br><span class="line">management.shell.telnet.enabled=false # Enable CRaSH telnet support. Enabled by default if the TelnetPlugin is available.</span><br><span class="line">management.shell.telnet.port=5000 # Telnet port.</span><br><span class="line"></span><br><span class="line"># TRACING (TraceProperties)</span><br><span class="line">management.trace.include=request-headers,response-headers,cookies,errors # Items to be included in the trace.</span><br><span class="line"></span><br><span class="line"># METRICS EXPORT (MetricExportProperties)</span><br><span class="line">spring.metrics.export.aggregate.key-pattern= # Pattern that tells the aggregator what to do with the keys from the source repository.</span><br><span class="line">spring.metrics.export.aggregate.prefix= # Prefix for global repository if active.</span><br><span class="line">spring.metrics.export.delay-millis=5000 # Delay in milliseconds between export ticks. Metrics are exported to external sources on a schedule with this delay.</span><br><span class="line">spring.metrics.export.enabled=true # Flag to enable metric export (assuming a MetricWriter is available).</span><br><span class="line">spring.metrics.export.excludes= # List of patterns for metric names to exclude. Applied after the includes.</span><br><span class="line">spring.metrics.export.includes= # List of patterns for metric names to include.</span><br><span class="line">spring.metrics.export.redis.key=keys.spring.metrics # Key for redis repository export (if active).</span><br><span class="line">spring.metrics.export.redis.prefix=spring.metrics # Prefix for redis repository if active.</span><br><span class="line">spring.metrics.export.send-latest= # Flag to switch off any available optimizations based on not exporting unchanged metric values.</span><br><span class="line">spring.metrics.export.statsd.host= # Host of a statsd server to receive exported metrics.</span><br><span class="line">spring.metrics.export.statsd.port=8125 # Port of a statsd server to receive exported metrics.</span><br><span class="line">spring.metrics.export.statsd.prefix= # Prefix for statsd exported metrics.</span><br><span class="line">spring.metrics.export.triggers.*= # Specific trigger properties per MetricWriter bean name.</span><br><span class="line"></span><br><span class="line"># ----------------------------------------</span><br><span class="line"># TESTING PROPERTIES</span><br><span class="line"># ----------------------------------------</span><br><span class="line"></span><br><span class="line">spring.test.database.replace=any # Type of existing DataSource to replace.</span><br><span class="line">spring.test.mockmvc.print=default # MVC Print option.</span><br></pre></td></tr></table></figure>
            
        </div>
        <footer class="article-footer">
            <a data-url="https://jpcui.github.io/wiki/2018/11/05/【spring-boot】application.properties/" data-id="cjs5isv14002uiuui5pb1ufsr" class="article-share-link">Share</a>
            
            
  <ul class="article-tag-list"><li class="article-tag-list-item"><a class="article-tag-list-link" href="/wiki/tags/spring-boot/">spring-boot</a></li></ul>

        </footer>
    </div>
    
</article>


  
    <article id="post-【bootstrap】file-input" class="article article-type-post" itemscope="" itemprop="blogPost">
    <div class="article-meta">
        <div class="left">
            <a href="/wiki/2018/11/05/【bootstrap】file-input/" class="article-date">
  <time datetime="2018-11-05T07:11:52.000Z" itemprop="datePublished">2018-11-05</time>
</a>
            
        </div>
        <div class="right">
            <span class="article-date right">
                <i class="fa fa-comments">
                    <a href="https://github.com/JPCui/wiki/issues/new" target="_blank" class="widget-title">issue</a>
                </i>
                <i class="fa fa-eye">
                    <span id="busuanzi_value_page_pv"></span>
                </i>
            </span>
        </div>
    </div>
    <div class="article-inner">
        
        
            <header class="article-header">
                
    
        <h1 itemprop="name">
            <a class="article-title" href="/wiki/2018/11/05/【bootstrap】file-input/">
                【bootstrap】file-input
            </a>
            
        </h1>
    

            </header>
        
        <div class="article-entry" itemprop="articleBody">
            
                <blockquote>
<p>暂时不适用该方式上传文件</p>
</blockquote>
<h1 id="文件上传插件"><a href="#文件上传插件" class="headerlink" title="文件上传插件"></a>文件上传插件</h1><p>官方文档：<a href="http://plugins.krajee.com/file-input" target="_blank" rel="noopener">fileinput</a></p>
<h1 id="使用"><a href="#使用" class="headerlink" title="使用"></a>使用</h1><ul>
<li><p>引入css</p>
<figure class="highlight html"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="tag">&lt;<span class="name">link</span> <span class="attr">rel</span>=<span class="string">"stylesheet"</span> <span class="attr">type</span>=<span class="string">"text/css"</span> <span class="attr">href</span>=<span class="string">"&lt;c:url value="</span>/<span class="attr">assets</span>/<span class="attr">bower_components</span>/<span class="attr">bootstrap-fileinput</span>/<span class="attr">css</span>/<span class="attr">fileinput.min.css</span>"/&gt;</span>"/&gt;</span><br></pre></td></tr></table></figure>
</li>
<li><p>引入js</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">&lt;script type=&quot;text/javascript&quot; src=&quot;&lt;c:url value=&quot;/assets/bower_components/bootstrap-fileinput/js/fileinput.min.js&quot;/&gt;&quot;&gt;&lt;/script&gt;</span><br><span class="line">&lt;script type=&quot;text/javascript&quot; src=&quot;&lt;c:url value=&quot;/assets/bower_components/bootstrap-fileinput/js/locales/zh.js&quot;/&gt;&quot;&gt;&lt;/script&gt;</span><br><span class="line">&lt;script type=&quot;text/javascript&quot; src=&quot;&lt;c:url value=&quot;/assets/bower_components/bootstrap-fileinput/js/plugins/piexif.min.js&quot;/&gt;&quot;&gt;&lt;/script&gt;</span><br></pre></td></tr></table></figure>
</li>
</ul>
<p>该插件需要</p>
<figure class="highlight html"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="tag">&lt;<span class="name">input</span> <span class="attr">id</span>=<span class="string">"f1"</span> <span class="attr">type</span>=<span class="string">"file"</span> <span class="attr">name</span>=<span class="string">"file"</span> <span class="attr">class</span>=<span class="string">"file"</span> <span class="attr">data-show-preview</span>=<span class="string">"true"</span>/&gt;</span></span><br></pre></td></tr></table></figure>
<figure class="highlight javascript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br></pre></td><td class="code"><pre><span class="line"></span><br><span class="line">$scope.initFileinput(<span class="string">"#f1"</span>);</span><br><span class="line"></span><br><span class="line"></span><br><span class="line">$scope.initFileinput = <span class="function"><span class="keyword">function</span> (<span class="params">fileinputId</span>) </span>&#123;</span><br><span class="line">    $(fileinputId).fileinput(&#123;</span><br><span class="line">        <span class="string">"uploadUrl"</span>: <span class="string">"/fileUpload/upload"</span>,</span><br><span class="line">        <span class="string">"maxFileSize"</span>: <span class="number">20480</span>,</span><br><span class="line">        <span class="string">"msgSizeTooLarge"</span>: <span class="string">"文件(&#123;name&#125; - &#123;size&#125; KB) 超过最大限制 &#123;maxSize&#125; KB. 请重新上传!"</span></span><br><span class="line">    &#125;);</span><br><span class="line">    $(fileinputId).on(<span class="string">'fileuploaded'</span>, <span class="function"><span class="keyword">function</span>(<span class="params">event, data, previewId, index</span>) </span>&#123;</span><br><span class="line">        $scope.taskRequest.fileName = data.response.fileName;</span><br><span class="line">        $scope.taskRequest.fileUrl = data.response.path;</span><br><span class="line">    &#125;);</span><br><span class="line">&#125;;</span><br></pre></td></tr></table></figure>

            
        </div>
        <footer class="article-footer">
            <a data-url="https://jpcui.github.io/wiki/2018/11/05/【bootstrap】file-input/" data-id="cjs5isuzm0002iuui2ilclb8j" class="article-share-link">Share</a>
            
            
  <ul class="article-tag-list"><li class="article-tag-list-item"><a class="article-tag-list-link" href="/wiki/tags/bootstrap/">bootstrap</a></li><li class="article-tag-list-item"><a class="article-tag-list-link" href="/wiki/tags/fileinput/">fileinput</a></li></ul>

        </footer>
    </div>
    
</article>


  
    <article id="post-【docker】杀不死的docker" class="article article-type-post" itemscope="" itemprop="blogPost">
    <div class="article-meta">
        <div class="left">
            <a href="/wiki/2018/11/05/【docker】杀不死的docker/" class="article-date">
  <time datetime="2018-11-05T07:11:52.000Z" itemprop="datePublished">2018-11-05</time>
</a>
            
        </div>
        <div class="right">
            <span class="article-date right">
                <i class="fa fa-comments">
                    <a href="https://github.com/JPCui/wiki/issues/new" target="_blank" class="widget-title">issue</a>
                </i>
                <i class="fa fa-eye">
                    <span id="busuanzi_value_page_pv"></span>
                </i>
            </span>
        </div>
    </div>
    <div class="article-inner">
        
        
            <header class="article-header">
                
    
        <h1 itemprop="name">
            <a class="article-title" href="/wiki/2018/11/05/【docker】杀不死的docker/">
                【docker】杀不死的docker
            </a>
            
        </h1>
    

            </header>
        
        <div class="article-entry" itemprop="articleBody">
            
                <p>Cannot restart container oasis-roomservice: Cannot kill container 9f34690345ddc450f8dcb60ed72fd0ceba3a9ce5196ba14e0a9b8e346082280a: connection error: desc = “transport: dial unix /var/run/docker/containerd/docker-containerd.sock: connect: connection refused”: unknown</p>
<p>应该是内存不足导致的</p>
<ul>
<li><a href="https://github.com/moby/moby/issues/36002" target="_blank" rel="noopener">https://github.com/moby/moby/issues/36002</a></li>
<li><a href="https://github.com/jwilder/nginx-proxy/issues/1034" target="_blank" rel="noopener">https://github.com/jwilder/nginx-proxy/issues/1034</a></li>
</ul>

            
        </div>
        <footer class="article-footer">
            <a data-url="https://jpcui.github.io/wiki/2018/11/05/【docker】杀不死的docker/" data-id="cjs5isuzp0004iuuikz3wf0rg" class="article-share-link">Share</a>
            
            
  <ul class="article-tag-list"><li class="article-tag-list-item"><a class="article-tag-list-link" href="/wiki/tags/docker/">docker</a></li></ul>

        </footer>
    </div>
    
</article>


  
    <article id="post-【docker】创建java容器" class="article article-type-post" itemscope="" itemprop="blogPost">
    <div class="article-meta">
        <div class="left">
            <a href="/wiki/2018/11/05/【docker】创建java容器/" class="article-date">
  <time datetime="2018-11-05T07:11:52.000Z" itemprop="datePublished">2018-11-05</time>
</a>
            
        </div>
        <div class="right">
            <span class="article-date right">
                <i class="fa fa-comments">
                    <a href="https://github.com/JPCui/wiki/issues/new" target="_blank" class="widget-title">issue</a>
                </i>
                <i class="fa fa-eye">
                    <span id="busuanzi_value_page_pv"></span>
                </i>
            </span>
        </div>
    </div>
    <div class="article-inner">
        
        
            <header class="article-header">
                
    
        <h1 itemprop="name">
            <a class="article-title" href="/wiki/2018/11/05/【docker】创建java容器/">
                【docker】创建java容器
            </a>
            
        </h1>
    

            </header>
        
        <div class="article-entry" itemprop="articleBody">
            
                <h2 id="创建jre镜像"><a href="#创建jre镜像" class="headerlink" title="创建jre镜像"></a>创建jre镜像</h2><ul>
<li>Dockerfile / jre8</li>
</ul>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line">FROM daocloud.io/library/java:8u111-jre-alpine</span><br><span class="line">MAINTAINER 624498030@qq.com</span><br><span class="line">ARG DOCKER_HOST_IP</span><br><span class="line">ENV DOCKER_HOST_IP=$DOCKER_HOST_IP</span><br><span class="line">RUN echo &quot;docker host ip found1: $DOCKER_HOST_IP&quot;</span><br></pre></td></tr></table></figure>
<ul>
<li>构建 oasis/java 的镜像</li>
</ul>
<blockquote>
<p>因为consul服务里要用到服务本身的内网IP（区别于镜像内部IP），<br>所以单独构建了 oasis/java 的镜像，将服务器IP映射到容器内</p>
</blockquote>
<p>把本机外网IP映射到镜像内</p>
<p><code>docker build --tag=oasis/java:latest --build-arg DOCKER_HOST_IP=$(ifconfig eth0 | grep inet | awk &#39;{print $2}&#39;) .</code></p>
<h2 id="构建容器"><a href="#构建容器" class="headerlink" title="构建容器"></a>构建容器</h2><p>自行替换</p>
<ul>
<li>${service-name} 服务名称</li>
<li>${outer-port}:${inner-port} 服务器端口:容器内端口</li>
<li>${container-name} 容器名字</li>
<li>${hotname} 主机名</li>
<li>${project-name} 项目打包后的名字</li>
</ul>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br></pre></td><td class="code"><pre><span class="line">version: &apos;2&apos;</span><br><span class="line">services:</span><br><span class="line">  $&#123;service-name&#125;:</span><br><span class="line">    image: oasis/java:latest</span><br><span class="line">    ports:</span><br><span class="line">      - &quot;$&#123;outer-port&#125;:$&#123;inner-port&#125;&quot;</span><br><span class="line">      - &quot;$&#123;debug-port&#125;:$&#123;debug-port&#125;&quot;</span><br><span class="line">    container_name : $&#123;container-name&#125;</span><br><span class="line">    hostname: $&#123;hostname&#125;</span><br><span class="line">    mem_limit: 3000m</span><br><span class="line">    stdin_open: true</span><br><span class="line">    tty: true</span><br><span class="line">    working_dir: /opt/app</span><br><span class="line">    command: java -Dfile.encoding=UTF-8 -Duser.timezone=GMT+08 -Dspring.profiles.active=prod -jar -Xmx512M $&#123;project-name&#125;.jar</span><br><span class="line">    volumes:</span><br><span class="line">      - /data1/auto_upline/$&#123;project-name&#125;:/opt/app</span><br><span class="line">      - /etc/localtime:/etc/localtime:ro</span><br></pre></td></tr></table></figure>

            
        </div>
        <footer class="article-footer">
            <a data-url="https://jpcui.github.io/wiki/2018/11/05/【docker】创建java容器/" data-id="cjs5isuzq0005iuuil19dauju" class="article-share-link">Share</a>
            
            
  <ul class="article-tag-list"><li class="article-tag-list-item"><a class="article-tag-list-link" href="/wiki/tags/docker/">docker</a></li></ul>

        </footer>
    </div>
    
</article>


  
    <article id="post-【guava】EventBus" class="article article-type-post" itemscope="" itemprop="blogPost">
    <div class="article-meta">
        <div class="left">
            <a href="/wiki/2018/11/05/【guava】EventBus/" class="article-date">
  <time datetime="2018-11-05T07:11:52.000Z" itemprop="datePublished">2018-11-05</time>
</a>
            
        </div>
        <div class="right">
            <span class="article-date right">
                <i class="fa fa-comments">
                    <a href="https://github.com/JPCui/wiki/issues/new" target="_blank" class="widget-title">issue</a>
                </i>
                <i class="fa fa-eye">
                    <span id="busuanzi_value_page_pv"></span>
                </i>
            </span>
        </div>
    </div>
    <div class="article-inner">
        
        
            <header class="article-header">
                
    
        <h1 itemprop="name">
            <a class="article-title" href="/wiki/2018/11/05/【guava】EventBus/">
                【guava】EventBus
            </a>
            
        </h1>
    

            </header>
        
        <div class="article-entry" itemprop="articleBody">
            
                <h1 id="EventBus"><a href="#EventBus" class="headerlink" title="EventBus"></a>EventBus</h1><p>消息总线, 望文生义, 发布订阅者模式中用来做事件调度的组件</p>
<p>下文基於<code>guava-18.0</code></p>
<p>EventBus 比較值得学习的是:</p>
<ul>
<li><p>com.google.common.eventbus.EventBus#subscribersByType</p>
<blockquote>
<p>SetMultimap&lt;Class&lt;?&gt;, EventSubscriber&gt; subscribersByType</p>
</blockquote>
<p>以 event object 作为 key, method 为方法</p>
<p>这样在消费event的时候, 可以根据 event object 快速找出所有的订阅者方法(@Subscribe)</p>
<p>注册消费者的方法可以借鉴<br>-&gt; <code>com.google.common.eventbus.EventBus#register</code><br>-&gt; <code>com.google.common.collect.Multimap#putAll</code></p>
</li>
<li><p>AsyncEventBus</p>
<p>异步的消息总线, 其实就是继承EventBus之后重写了3个方法:</p>
<ul>
<li><p>enqueueEvent: event入队列</p>
<ul>
<li>EventBus: 使用ThreadLocal隔离多线程, 每个线程自己处理自己的event</li>
<li>AsyncEventBus: 使用ConcurrentLinkedQueue解决并发, 使得任务调度更高效</li>
</ul>
</li>
<li><p>dispatchQueuedEvents: 调度队列中的 event</p>
<p>几乎没什么区别, 都是循环拿event进行调度</p>
<ul>
<li>EventBus: 还要用isDispatching设置是否正在执行的开关, 感觉有点鸡肋</li>
</ul>
</li>
<li><p>dispatch: 调度方法</p>
<ul>
<li>EventBus: 反射调用真实的订阅者(<code>method.invoke(target, new Object[] { event })</code>)</li>
<li>AsyncEventBus: 使用 Executor 异步调度: super.dispatch</li>
</ul>
</li>
</ul>
</li>
</ul>
<h2 id="参考"><a href="#参考" class="headerlink" title="参考"></a>参考</h2><ul>
<li><p><a href="http://ifeve.com/google-guava-eventbus/" target="_blank" rel="noopener">[Google Guava] 11-事件总线</a></p>
<p>很好的解释了:</p>
<ul>
<li>为什么要用 EventBus</li>
<li>为什么使用 @Subscribe 注解, 而不是接口</li>
<li>为什么不使用泛型(spring event 中就用的泛型), 而是 Object</li>
</ul>
</li>
<li><p><a href="https://juejin.im/post/5b61c852e51d451956055476" target="_blank" rel="noopener">Guava：EventBus 源码分析</a></p>
</li>
</ul>

            
        </div>
        <footer class="article-footer">
            <a data-url="https://jpcui.github.io/wiki/2018/11/05/【guava】EventBus/" data-id="cjs5isuzr0006iuuitoqfzzfk" class="article-share-link">Share</a>
            
            
  <ul class="article-tag-list"><li class="article-tag-list-item"><a class="article-tag-list-link" href="/wiki/tags/eventbus/">eventbus</a></li><li class="article-tag-list-item"><a class="article-tag-list-link" href="/wiki/tags/guava/">guava</a></li></ul>

        </footer>
    </div>
    
</article>


  
    <article id="post-【feign】不支持在Get请求中使用对象传参" class="article article-type-post" itemscope="" itemprop="blogPost">
    <div class="article-meta">
        <div class="left">
            <a href="/wiki/2018/11/05/【feign】不支持在Get请求中使用对象传参/" class="article-date">
  <time datetime="2018-11-05T07:11:52.000Z" itemprop="datePublished">2018-11-05</time>
</a>
            
        </div>
        <div class="right">
            <span class="article-date right">
                <i class="fa fa-comments">
                    <a href="https://github.com/JPCui/wiki/issues/new" target="_blank" class="widget-title">issue</a>
                </i>
                <i class="fa fa-eye">
                    <span id="busuanzi_value_page_pv"></span>
                </i>
            </span>
        </div>
    </div>
    <div class="article-inner">
        
        
            <header class="article-header">
                
    
        <h1 itemprop="name">
            <a class="article-title" href="/wiki/2018/11/05/【feign】不支持在Get请求中使用对象传参/">
                【feign】不支持在Get请求中使用对象传参
            </a>
            
        </h1>
    

            </header>
        
        <div class="article-entry" itemprop="articleBody">
            
                <p>解决方法：</p>
<ol>
<li><p>改用 POST</p>
</li>
<li><p>改用 Map</p>
</li>
<li><p>自定义 Encoder</p>
<ul>
<li>@see <a href="feign-request-object.md">feign-request-object</a></li>
<li>@see <a href="https://github.com/OpenFeign/feign/issues/520" target="_blank" rel="noopener">https://github.com/OpenFeign/feign/issues/520</a></li>
</ul>
</li>
</ol>
<h3 id="一点延伸"><a href="#一点延伸" class="headerlink" title="一点延伸"></a>一点延伸</h3><blockquote>
<p>quote: <a href="https://source.coveo.com/2016/07/21/feign-request-object/" target="_blank" rel="noopener">https://source.coveo.com/2016/07/21/feign-request-object/</a></p>
</blockquote>
  <figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br><span class="line">64</span><br><span class="line">65</span><br><span class="line">66</span><br><span class="line">67</span><br><span class="line">68</span><br><span class="line">69</span><br><span class="line">70</span><br><span class="line">71</span><br><span class="line">72</span><br><span class="line">73</span><br><span class="line">74</span><br><span class="line">75</span><br><span class="line">76</span><br><span class="line">77</span><br><span class="line">78</span><br><span class="line">79</span><br><span class="line">80</span><br><span class="line">81</span><br><span class="line">82</span><br><span class="line">83</span><br><span class="line">84</span><br><span class="line">85</span><br><span class="line">86</span><br><span class="line">87</span><br><span class="line">88</span><br><span class="line">89</span><br><span class="line">90</span><br><span class="line">91</span><br><span class="line">92</span><br><span class="line">93</span><br><span class="line">94</span><br><span class="line">95</span><br><span class="line">96</span><br><span class="line">97</span><br><span class="line">98</span><br><span class="line">99</span><br><span class="line">100</span><br><span class="line">101</span><br><span class="line">102</span><br><span class="line">103</span><br><span class="line">104</span><br><span class="line">105</span><br><span class="line">106</span><br><span class="line">107</span><br><span class="line">108</span><br><span class="line">109</span><br><span class="line">110</span><br><span class="line">111</span><br><span class="line">112</span><br><span class="line">113</span><br><span class="line">114</span><br><span class="line">115</span><br><span class="line">116</span><br><span class="line">117</span><br><span class="line">118</span><br><span class="line">119</span><br><span class="line">120</span><br><span class="line">121</span><br><span class="line">122</span><br><span class="line">123</span><br><span class="line">124</span><br><span class="line">125</span><br><span class="line">126</span><br><span class="line">127</span><br><span class="line">128</span><br><span class="line">129</span><br><span class="line">130</span><br><span class="line">131</span><br><span class="line">132</span><br><span class="line">133</span><br><span class="line">134</span><br><span class="line">135</span><br><span class="line">136</span><br><span class="line">137</span><br><span class="line">138</span><br><span class="line">139</span><br><span class="line">140</span><br><span class="line">141</span><br><span class="line">142</span><br><span class="line">143</span><br></pre></td><td class="code"><pre><span class="line">Using request objects with Feign</span><br><span class="line">BY JONATHAN ROCHETTE — JULY 21, 2016</span><br><span class="line">We recently decided to move our functional tests stack from python to Java, mainly to make coding them easier (our project’s backend is coded in Java) and thus increase the number of tests getting written. We needed a few things to make this possible and one of them was a complete and comprehensive Java client for the Usage Analytics API. Since a lot of the Java API clients we use internaly are built with Netflix’s Feign, I decided to give it a go.</span><br><span class="line"></span><br><span class="line">After playing with Feign a little, I started to really like the tool. Writing an HTTP client with it is pretty easy, and it would not be a lot of work to maintain. I only had one major concern: there was no out of the box support for request objects.</span><br><span class="line"></span><br><span class="line">Using request objects is a simple pattern that help maintain methods with many optional parameters, which is the case for some our API’s methods. Without request objects, calling a method would look like this:</span><br><span class="line"></span><br><span class="line">statsApi.getCombinedData(from,</span><br><span class="line">                         to,</span><br><span class="line">                         dimensions,</span><br><span class="line">                         metrics,</span><br><span class="line">                         null,</span><br><span class="line">                         null,</span><br><span class="line">                         null,</span><br><span class="line">                         null,</span><br><span class="line">                         true,</span><br><span class="line">                         null,</span><br><span class="line">                         null,</span><br><span class="line">                         null);</span><br><span class="line">Not looking so good, right? Using a request object transforms the method call into this:</span><br><span class="line"></span><br><span class="line">statsApi.getCombinedData(new GetCombinedDataRequest(from,</span><br><span class="line">                                                    to,</span><br><span class="line">                                                    dimensions,</span><br><span class="line">                                                    metrics)</span><br><span class="line">                         .withIncludeMetadata(true));</span><br><span class="line">Way better!</span><br><span class="line"></span><br><span class="line">For the request objects, we settled for a constructor that would take the required parameters of the API call in arguments. The optional parameters can then be added to the request with setters or via the fluent interface pattern.</span><br><span class="line"></span><br><span class="line">So, this is all very nice, but it does not fix my initial concern with Feign. I have some really nice request objects, but I cannot use any of them, as they are not supported. But, since Feign is very easily extendable, I simply added support for the request objects via a homemade encoder. And thus, the ReflectionEncoder was born.</span><br><span class="line"></span><br><span class="line">public class ReflectionEncoder implements Encoder</span><br><span class="line">&#123;</span><br><span class="line">    private static final String DEFAULT_DATETIME_FORMAT = &quot;yyyy-MM-dd&apos;T&apos;HH:mm:ss.SSSZZ&quot;;</span><br><span class="line">    private ObjectMapper mapper;</span><br><span class="line">    private Encoder fallbackEncoder;</span><br><span class="line"></span><br><span class="line">    public ReflectionEncoder(ObjectMapper mapper,</span><br><span class="line">                             Encoder fallbackEncoder)</span><br><span class="line">    &#123;</span><br><span class="line">        this.mapper = mapper;</span><br><span class="line">        this.fallbackEncoder = fallbackEncoder;</span><br><span class="line">    &#125;</span><br><span class="line"></span><br><span class="line">    @Override</span><br><span class="line">    public void encode(Object parametersObject, Type bodyType, RequestTemplate template)</span><br><span class="line">      throws EncodeException &#123;</span><br><span class="line">      if (Request.class.isAssignableFrom(parametersObject.getClass())) &#123;</span><br><span class="line">        Map&lt;String, Object&gt; params = new HashMap&lt;&gt;();</span><br><span class="line">        try &#123;</span><br><span class="line">          // Prepare the requestTemplate</span><br><span class="line">          for (Method method : parametersObject.getClass().getMethods()) &#123;</span><br><span class="line">            if (method.isAnnotationPresent(QueryParam.class)) &#123;</span><br><span class="line">              String key = method.getAnnotation(QueryParam.class).value();</span><br><span class="line">              Object value = method.invoke(parametersObject);</span><br><span class="line">              if (value != null) &#123;</span><br><span class="line">                if (Collection.class.isAssignableFrom(method.getReturnType())) &#123;</span><br><span class="line">                  value =</span><br><span class="line">                      ((Collection&lt;?&gt;) value)</span><br><span class="line">                          .stream()</span><br><span class="line">                          .map(v -&gt; String.valueOf(v))</span><br><span class="line">                          .collect(Collectors.toList());</span><br><span class="line">                &#125; else if (DateTime.class.isAssignableFrom(method.getReturnType())) &#123;</span><br><span class="line">                  value = ((DateTime) value).toString(DEFAULT_DATETIME_FORMAT);</span><br><span class="line">                &#125; else &#123;</span><br><span class="line">                  value = String.valueOf(value);</span><br><span class="line">                &#125;</span><br><span class="line">                params.put(key, value);</span><br><span class="line">                template.query(key, keyToTemplate(key));</span><br><span class="line">              &#125;</span><br><span class="line">            &#125; else if (method.isAnnotationPresent(PathParam.class)) &#123;</span><br><span class="line">              String key = method.getAnnotation(PathParam.class).value();</span><br><span class="line">              Object value = method.invoke(parametersObject);</span><br><span class="line">              if (value != null) &#123;</span><br><span class="line">                params.put(key, String.valueOf(value));</span><br><span class="line">              &#125;</span><br><span class="line">            &#125; else if (method.isAnnotationPresent(BodyParam.class)) &#123;</span><br><span class="line">              template.body(mapper.writeValueAsString(method.invoke(parametersObject)));</span><br><span class="line">            &#125;</span><br><span class="line">          &#125;</span><br><span class="line"></span><br><span class="line">          // Replace templates with actual values</span><br><span class="line">          template.resolve(params);</span><br><span class="line">        &#125; catch (</span><br><span class="line">            IllegalAccessException</span><br><span class="line">            | IllegalArgumentException</span><br><span class="line">            | InvocationTargetException</span><br><span class="line">            | JsonProcessingException e) &#123;</span><br><span class="line">          throw new EncodeException(&quot;Could not encode parameter object correctly&quot;, e);</span><br><span class="line">        &#125;</span><br><span class="line">      &#125; else &#123;</span><br><span class="line">        fallbackEncoder.encode(parametersObject, bodyType, template);</span><br><span class="line">      &#125;</span><br><span class="line">    &#125;</span><br><span class="line"></span><br><span class="line">    private String keyToTemplate(String key)</span><br><span class="line">    &#123;</span><br><span class="line">        return &quot;&#123;&quot; + key + &quot;&#125;&quot;;</span><br><span class="line">    &#125;</span><br><span class="line">&#125;</span><br><span class="line">It may look complicated, but it’s in fact pretty simple. Here is how it works: if the object received by the encoder is of the right type, it will use reflection to find the getters of the object, and depending on the annotation, inject the parameter at the right place in the RequestTemplate. Otherwise, it will use a fallback encoder.</span><br><span class="line"></span><br><span class="line">Now, simply set the ReflectionEncoder in your client class with the builder provided by Feign and you are ready to go!</span><br><span class="line"></span><br><span class="line">Here is a complete example of a simple client using request objects.</span><br><span class="line"></span><br><span class="line">public interface CustomDimensionsApi extends ClientFactory.Api</span><br><span class="line">&#123;</span><br><span class="line">    @RequestLine(&quot;PUT /&quot; + ApiVersion.VERSION + &quot;/dimensions/custom/&#123;apiName&#125;&quot;)</span><br><span class="line">    DimensionResponse editDimension(EditDimensionRequest request);</span><br><span class="line">&#125;</span><br><span class="line">public class EditDimensionRequest extends BaseRequest</span><br><span class="line">&#123;</span><br><span class="line">    private String apiName;</span><br><span class="line">    private Boolean updatePastEvents;</span><br><span class="line">    private CustomDimensionModel customDimensionModel;</span><br><span class="line"></span><br><span class="line">    public EditDimensionRequest(String apiName,</span><br><span class="line">                                CustomDimensionModel customDimensionModel)</span><br><span class="line">    &#123;</span><br><span class="line">        this.apiName = apiName;</span><br><span class="line">        this.customDimensionModel = customDimensionModel;</span><br><span class="line">    &#125;</span><br><span class="line"></span><br><span class="line">    @PathParam(&quot;apiName&quot;)</span><br><span class="line">    public String getApiName() &#123; return apiName; &#125;</span><br><span class="line">    public void setApiName(String apiName) &#123; this.apiName = apiName; &#125;</span><br><span class="line"></span><br><span class="line">    @QueryParam(&quot;updatePastEvents&quot;)</span><br><span class="line">    public Boolean getUpdatePastEvents() &#123; return updatePastEvents; &#125;</span><br><span class="line">    public void setUpdatePastEvents(Boolean updatePastEvents) &#123; this.updatePastEvents = updatePastEvents; &#125;</span><br><span class="line"></span><br><span class="line">    @BodyParam</span><br><span class="line">    public CustomDimensionModel getCustomDimensionModel() &#123; return customDimensionModel; &#125;</span><br><span class="line">    public void setCustomDimensionModel(CustomDimensionModel customDimensionModel) &#123; this.customDimensionModel = customDimensionModel; &#125;</span><br><span class="line"></span><br><span class="line">    public EditDimensionRequest withUpdatePastEvents(Boolean updatePastEvents)&#123;</span><br><span class="line">        setUpdatePastEvents(updatePastEvents); return this;</span><br><span class="line">    &#125;</span><br><span class="line">&#125;</span><br><span class="line">There you have it: a very simple HTTP client built with Feign, using a request object. It made coding our functional tests way easier and made them much cleaner. The next steps for us would be to combine that with better exception handling (awesome post by my friend Jacques-Etienne Beaudet, go check it out) and we would be unstoppable!</span><br></pre></td></tr></table></figure>
            
        </div>
        <footer class="article-footer">
            <a data-url="https://jpcui.github.io/wiki/2018/11/05/【feign】不支持在Get请求中使用对象传参/" data-id="cjs5isuzs0009iuuia9b2u9rz" class="article-share-link">Share</a>
            
            
  <ul class="article-tag-list"><li class="article-tag-list-item"><a class="article-tag-list-link" href="/wiki/tags/feign/">feign</a></li><li class="article-tag-list-item"><a class="article-tag-list-link" href="/wiki/tags/spring-cloud/">spring-cloud</a></li></ul>

        </footer>
    </div>
    
</article>


  
    <article id="post-【hystrix】探索" class="article article-type-post" itemscope="" itemprop="blogPost">
    <div class="article-meta">
        <div class="left">
            <a href="/wiki/2018/11/05/【hystrix】探索/" class="article-date">
  <time datetime="2018-11-05T07:11:52.000Z" itemprop="datePublished">2018-11-05</time>
</a>
            
        </div>
        <div class="right">
            <span class="article-date right">
                <i class="fa fa-comments">
                    <a href="https://github.com/JPCui/wiki/issues/new" target="_blank" class="widget-title">issue</a>
                </i>
                <i class="fa fa-eye">
                    <span id="busuanzi_value_page_pv"></span>
                </i>
            </span>
        </div>
    </div>
    <div class="article-inner">
        
        
            <header class="article-header">
                
    
        <h1 itemprop="name">
            <a class="article-title" href="/wiki/2018/11/05/【hystrix】探索/">
                【hystrix】探索
            </a>
            
        </h1>
    

            </header>
        
        <div class="article-entry" itemprop="articleBody">
            
                <h1 id="断路器"><a href="#断路器" class="headerlink" title="断路器"></a>断路器</h1><p>作用: 防止一个服务接口错误可能会导致级联故障. </p>
<p>触发条件: 当<strong>一个周期</strong>内, 单个接口调用次数超过<strong>请求调用阈值</strong>, 或失败率达到<strong>失败百分比阈值</strong>,<br>断路器将会打开, 并且请求会失败.</p>
<p>降级: 为了防止失败和断路, 开发中可以提供一个回调函数.<br>回调函数可以是另一个受Hystrix保护的接口, 静态数据或空值. </p>
<p><img src="https://raw.githubusercontent.com/spring-cloud/spring-cloud-netflix/1.4.x/docs/src/main/asciidoc/images/HystrixFallback.png" alt=""></p>
<h2 id="使用方式"><a href="#使用方式" class="headerlink" title="使用方式"></a>使用方式</h2><p>引入依赖:<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">&lt;dependency&gt;</span><br><span class="line">  &lt;groupId&gt;org.springframework.cloud&lt;/groupId&gt;</span><br><span class="line">  &lt;artifactId&gt;spring-cloud-starter-netflix-hystrix&lt;/artifactId&gt;</span><br><span class="line">&lt;/dependency&gt;</span><br></pre></td></tr></table></figure></p>
<p>启用:</p>
<p><code>@EnableCircuitBreaker</code></p>
<p>See <a href="https://github.com/Netflix/Hystrix/tree/master/hystrix-contrib/hystrix-javanica#configuration" target="_blank" rel="noopener">here</a> for more.</p>
<p>See the <a href="https://github.com/Netflix/Hystrix/wiki/Configuration" target="_blank" rel="noopener">Hystrix wiki</a> for details on the properties available.</p>

            
        </div>
        <footer class="article-footer">
            <a data-url="https://jpcui.github.io/wiki/2018/11/05/【hystrix】探索/" data-id="cjs5isuzt000aiuui5efovs4h" class="article-share-link">Share</a>
            
            
        </footer>
    </div>
    
</article>


  
    <article id="post-【mybatis】通用mapper注册流程" class="article article-type-post" itemscope="" itemprop="blogPost">
    <div class="article-meta">
        <div class="left">
            <a href="/wiki/2018/11/05/【mybatis】通用mapper注册流程/" class="article-date">
  <time datetime="2018-11-05T07:11:52.000Z" itemprop="datePublished">2018-11-05</time>
</a>
            
        </div>
        <div class="right">
            <span class="article-date right">
                <i class="fa fa-comments">
                    <a href="https://github.com/JPCui/wiki/issues/new" target="_blank" class="widget-title">issue</a>
                </i>
                <i class="fa fa-eye">
                    <span id="busuanzi_value_page_pv"></span>
                </i>
            </span>
        </div>
    </div>
    <div class="article-inner">
        
        
            <header class="article-header">
                
    
        <h1 itemprop="name">
            <a class="article-title" href="/wiki/2018/11/05/【mybatis】通用mapper注册流程/">
                【mybatis】通用mapper注册流程
            </a>
            
        </h1>
    

            </header>
        
        <div class="article-entry" itemprop="articleBody">
            
                <blockquote>
<p><a href="https://github.com/abel533/Mapper" target="_blank" rel="noopener">https://github.com/abel533/Mapper</a><br>/oasis-o2o/Mapper</p>
</blockquote>
<h2 id="通用mapper注册流程"><a href="#通用mapper注册流程" class="headerlink" title="通用mapper注册流程"></a>通用mapper注册流程</h2><p>使用咱们自己的mapper扩展插件时, 想自定义mapper实现批量插入(见:InsertListMapper), 发现无法实例化 <code>SpecialProvider</code>, </p>
<p><code>org.apache.ibatis.builder.BuilderException: Error invoking SqlProvider method</code></p>
<p>研究其mapper注册流程发现, 在 <code>MapperScannerConfigurer</code> 中未配置 <code>mappers</code> 时, 默认注册 <code>tk.mybatis.mapper.common.Mapper</code>, 代码见 <code>tk.mybatis.mapper.mapperhelper.MapperHelper#ifEmptyRegisterDefaultInterface</code>, 如果指定了 <code>mappers</code>, 则在 <code>setProperties</code> 时就开始注册了, 代码见 <code>tk.mybatis.mapper.mapperhelper.MapperHelper#setProperties</code></p>

            
        </div>
        <footer class="article-footer">
            <a data-url="https://jpcui.github.io/wiki/2018/11/05/【mybatis】通用mapper注册流程/" data-id="cjs5isuzu000ciuuizc1j3kj9" class="article-share-link">Share</a>
            
            
  <ul class="article-tag-list"><li class="article-tag-list-item"><a class="article-tag-list-link" href="/wiki/tags/mybatis/">mybatis</a></li></ul>

        </footer>
    </div>
    
</article>


  
    <article id="post-【mgo】mgo源码解读——cluster" class="article article-type-post" itemscope="" itemprop="blogPost">
    <div class="article-meta">
        <div class="left">
            <a href="/wiki/2018/11/05/【mgo】mgo源码解读——cluster/" class="article-date">
  <time datetime="2018-11-05T07:11:52.000Z" itemprop="datePublished">2018-11-05</time>
</a>
            
        </div>
        <div class="right">
            <span class="article-date right">
                <i class="fa fa-comments">
                    <a href="https://github.com/JPCui/wiki/issues/new" target="_blank" class="widget-title">issue</a>
                </i>
                <i class="fa fa-eye">
                    <span id="busuanzi_value_page_pv"></span>
                </i>
            </span>
        </div>
    </div>
    <div class="article-inner">
        
        
            <header class="article-header">
                
    
        <h1 itemprop="name">
            <a class="article-title" href="/wiki/2018/11/05/【mgo】mgo源码解读——cluster/">
                【mgo】mgo源码解读——cluster
            </a>
            
        </h1>
    

            </header>
        
        <div class="article-entry" itemprop="articleBody">
            
                <h2 id="定时更新服务器信息-——-syncServersLoop"><a href="#定时更新服务器信息-——-syncServersLoop" class="headerlink" title="定时更新服务器信息 —— syncServersLoop"></a>定时更新服务器信息 —— syncServersLoop</h2><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br><span class="line">64</span><br><span class="line">65</span><br><span class="line">66</span><br><span class="line">67</span><br><span class="line">68</span><br><span class="line">69</span><br><span class="line">70</span><br><span class="line">71</span><br><span class="line">72</span><br><span class="line">73</span><br><span class="line">74</span><br><span class="line">75</span><br></pre></td><td class="code"><pre><span class="line">// syncServersLoop loops while the cluster is alive to keep its idea of the server topology up-to-date.</span><br><span class="line">// 当集群处于活动状态时，以循环来保持服务的实时拓扑结构。</span><br><span class="line"></span><br><span class="line">// It must be called just once from newCluster.</span><br><span class="line">// 必须从 newCluster 调用一次。</span><br><span class="line"></span><br><span class="line">// The loop iterates once syncServersDelay has passed, or if somebody injects a value into the cluster.sync channel to force a synchronization.</span><br><span class="line">// 一段时间（syncServersDelay）的延迟过后，循环会进行一次迭代。或者在 cluster.sync 管道中注入一个值，来强制执行一次同步操作。（从最后的select管道通信可以很容易看出）</span><br><span class="line"></span><br><span class="line">// A loop iteration will contact all servers in parallel, ask them about known peers and their own role within the cluster, and then attempt to do the same with all the peers retrieved.</span><br><span class="line">// 一次循环迭代将会✨并行✨访问所有服务，查询集群中已知的对等服务及自己的角色，然后对所有对等服务尝试同样的操作。</span><br><span class="line"> </span><br><span class="line">func (cluster *mongoCluster) syncServersLoop() &#123;</span><br><span class="line">    // ✨ 死循环</span><br><span class="line">	for &#123;</span><br><span class="line">		debugf(&quot;SYNC Cluster %p is starting a sync loop iteration.&quot;, cluster)</span><br><span class="line"></span><br><span class="line">		// ✨ 上锁！</span><br><span class="line">		cluster.Lock()</span><br><span class="line">		// ✨ 集群中没有服务了（全挂了？）</span><br><span class="line">		if cluster.references == 0 &#123;</span><br><span class="line">			cluster.Unlock()</span><br><span class="line">			break</span><br><span class="line">		&#125;</span><br><span class="line">		cluster.references++ // Keep alive while syncing.</span><br><span class="line">		// ✨ ？？？</span><br><span class="line">		direct := cluster.direct</span><br><span class="line">		cluster.Unlock()</span><br><span class="line"></span><br><span class="line">		cluster.syncServersIteration(direct)</span><br><span class="line"></span><br><span class="line">		// We just synchronized, so consume any outstanding requests.</span><br><span class="line">		select &#123;</span><br><span class="line">		case &lt;-cluster.sync:</span><br><span class="line">		default:</span><br><span class="line">		&#125;</span><br><span class="line"></span><br><span class="line">		cluster.Release()</span><br><span class="line"></span><br><span class="line">		// Hold off before allowing another sync. No point in</span><br><span class="line">		// burning CPU looking for down servers.</span><br><span class="line">		if !cluster.failFast &#123;</span><br><span class="line">			time.Sleep(syncShortDelay)</span><br><span class="line">		&#125;</span><br><span class="line"></span><br><span class="line">		cluster.Lock()</span><br><span class="line">		if cluster.references == 0 &#123;</span><br><span class="line">			cluster.Unlock()</span><br><span class="line">			break</span><br><span class="line">		&#125;</span><br><span class="line">		cluster.syncCount++</span><br><span class="line">		// Poke all waiters so they have a chance to timeout or</span><br><span class="line">		// restart syncing if they wish to.</span><br><span class="line">		cluster.serverSynced.Broadcast()</span><br><span class="line">		// Check if we have to restart immediately either way.</span><br><span class="line">		restart := !direct &amp;&amp; cluster.masters.Empty() || cluster.servers.Empty()</span><br><span class="line">		cluster.Unlock()</span><br><span class="line"></span><br><span class="line">		if restart &#123;</span><br><span class="line">			log(&quot;SYNC No masters found. Will synchronize again.&quot;)</span><br><span class="line">			time.Sleep(syncShortDelay)</span><br><span class="line">			continue</span><br><span class="line">		&#125;</span><br><span class="line"></span><br><span class="line">		debugf(&quot;SYNC Cluster %p waiting for next requested or scheduled sync.&quot;, cluster)</span><br><span class="line"></span><br><span class="line">		// Hold off until somebody explicitly requests a synchronization</span><br><span class="line">		// or it&apos;s time to check for a cluster topology change again.</span><br><span class="line">		select &#123;</span><br><span class="line">		case &lt;-cluster.sync:</span><br><span class="line">		case &lt;-time.After(syncServersDelay):</span><br><span class="line">		&#125;</span><br><span class="line">	&#125;</span><br><span class="line">	debugf(&quot;SYNC Cluster %p is stopping its sync loop.&quot;, cluster)</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure>
<h2 id="同步服务info的核心"><a href="#同步服务info的核心" class="headerlink" title="同步服务info的核心"></a>同步服务info的核心</h2><p>设计到的点</p>
<ul>
<li>sync.WaitGroup 并发控制</li>
<li>sync.Mutex 这个简单</li>
</ul>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br><span class="line">64</span><br><span class="line">65</span><br><span class="line">66</span><br><span class="line">67</span><br><span class="line">68</span><br><span class="line">69</span><br><span class="line">70</span><br><span class="line">71</span><br><span class="line">72</span><br><span class="line">73</span><br><span class="line">74</span><br><span class="line">75</span><br><span class="line">76</span><br><span class="line">77</span><br><span class="line">78</span><br><span class="line">79</span><br><span class="line">80</span><br><span class="line">81</span><br><span class="line">82</span><br><span class="line">83</span><br><span class="line">84</span><br><span class="line">85</span><br><span class="line">86</span><br><span class="line">87</span><br><span class="line">88</span><br><span class="line">89</span><br><span class="line">90</span><br><span class="line">91</span><br><span class="line">92</span><br><span class="line">93</span><br><span class="line">94</span><br><span class="line">95</span><br><span class="line">96</span><br><span class="line">97</span><br><span class="line">98</span><br><span class="line">99</span><br><span class="line">100</span><br><span class="line">101</span><br><span class="line">102</span><br><span class="line">103</span><br><span class="line">104</span><br><span class="line">105</span><br><span class="line">106</span><br><span class="line">107</span><br><span class="line">108</span><br></pre></td><td class="code"><pre><span class="line">func (cluster *mongoCluster) syncServersIteration(direct bool) &#123;</span><br><span class="line">	log(&quot;SYNC Starting full topology synchronization...&quot;)</span><br><span class="line"></span><br><span class="line">	var wg sync.WaitGroup</span><br><span class="line">	var m sync.Mutex</span><br><span class="line">	notYetAdded := make(map[string]pendingAdd)</span><br><span class="line">	addIfFound := make(map[string]bool)</span><br><span class="line">	seen := make(map[string]bool)</span><br><span class="line">	syncKind := partialSync</span><br><span class="line"></span><br><span class="line">	var spawnSync func(addr string, byMaster bool)</span><br><span class="line">	spawnSync = func(addr string, byMaster bool) &#123;</span><br><span class="line">		// ✨ 标记开启了一个新线程</span><br><span class="line">		wg.Add(1)</span><br><span class="line">		go func() &#123;</span><br><span class="line">			defer wg.Done()</span><br><span class="line"></span><br><span class="line">			// ✨ 解析地址，这个resolveAddr实现好🐂🍺，考虑的较全面</span><br><span class="line">			// ✨ （不进去看代码了）先解析ip地址，不是ip地址就当初udp连接解析，因为拨号连接可能耗时，用了select管道并发处理，这里分别以udp4、udp6进行尝试</span><br><span class="line">			tcpaddr, err := resolveAddr(addr)</span><br><span class="line">			if err != nil &#123;</span><br><span class="line">				log(&quot;SYNC Failed to start sync of &quot;, addr, &quot;: &quot;, err.Error())</span><br><span class="line">				return</span><br><span class="line">			&#125;</span><br><span class="line">			resolvedAddr := tcpaddr.String()</span><br><span class="line"></span><br><span class="line">			// ✨ 已发现地址的逻辑，要加锁</span><br><span class="line">			m.Lock()</span><br><span class="line">			if byMaster &#123;</span><br><span class="line">				if pending, ok := notYetAdded[resolvedAddr]; ok &#123;</span><br><span class="line">					delete(notYetAdded, resolvedAddr)</span><br><span class="line">					m.Unlock()</span><br><span class="line">					cluster.addServer(pending.server, pending.info, completeSync)</span><br><span class="line">					return</span><br><span class="line">				&#125;</span><br><span class="line">				addIfFound[resolvedAddr] = true</span><br><span class="line">			&#125;</span><br><span class="line">			// ✨ 如果已经发现该地址，stop</span><br><span class="line">			if seen[resolvedAddr] &#123;</span><br><span class="line">				m.Unlock()</span><br><span class="line">				return</span><br><span class="line">			&#125;</span><br><span class="line">			// ✨ 标记当前地址已被发现</span><br><span class="line">			seen[resolvedAddr] = true</span><br><span class="line">			m.Unlock()</span><br><span class="line"></span><br><span class="line">			server := cluster.server(addr, tcpaddr)</span><br><span class="line">			// ✨ 同步server信息</span><br><span class="line">			info, hosts, err := cluster.syncServer(server)</span><br><span class="line">			if err != nil &#123;</span><br><span class="line">				// ✨ 同步信息出错，移除</span><br><span class="line">				cluster.removeServer(server)</span><br><span class="line">				return</span><br><span class="line">			&#125;</span><br><span class="line"></span><br><span class="line">			m.Lock()</span><br><span class="line">			add := direct || info.Master || addIfFound[resolvedAddr]</span><br><span class="line">			if add &#123;</span><br><span class="line">				syncKind = completeSync</span><br><span class="line">			&#125; else &#123;</span><br><span class="line">				notYetAdded[resolvedAddr] = pendingAdd&#123;server, info&#125;</span><br><span class="line">			&#125;</span><br><span class="line">			m.Unlock()</span><br><span class="line">			if add &#123;</span><br><span class="line">				cluster.addServer(server, info, completeSync)</span><br><span class="line">			&#125;</span><br><span class="line">			if !direct &#123;</span><br><span class="line">				for _, addr := range hosts &#123;</span><br><span class="line">					spawnSync(addr, info.Master)</span><br><span class="line">				&#125;</span><br><span class="line">			&#125;</span><br><span class="line">		&#125;()</span><br><span class="line">	&#125;</span><br><span class="line"></span><br><span class="line">	knownAddrs := cluster.getKnownAddrs()</span><br><span class="line">	for _, addr := range knownAddrs &#123;</span><br><span class="line">		spawnSync(addr, false)</span><br><span class="line">	&#125;</span><br><span class="line">	wg.Wait()</span><br><span class="line"></span><br><span class="line">	if syncKind == completeSync &#123;</span><br><span class="line">		logf(&quot;SYNC Synchronization was complete (got data from primary).&quot;)</span><br><span class="line">		for _, pending := range notYetAdded &#123;</span><br><span class="line">			cluster.removeServer(pending.server)</span><br><span class="line">		&#125;</span><br><span class="line">	&#125; else &#123;</span><br><span class="line">		logf(&quot;SYNC Synchronization was partial (cannot talk to primary).&quot;)</span><br><span class="line">		for _, pending := range notYetAdded &#123;</span><br><span class="line">			cluster.addServer(pending.server, pending.info, partialSync)</span><br><span class="line">		&#125;</span><br><span class="line">	&#125;</span><br><span class="line"></span><br><span class="line">	cluster.Lock()</span><br><span class="line">	mastersLen := cluster.masters.Len()</span><br><span class="line">	logf(&quot;SYNC Synchronization completed: %d master(s) and %d slave(s) alive.&quot;, mastersLen, cluster.servers.Len()-mastersLen)</span><br><span class="line"></span><br><span class="line">	// Update dynamic seeds, but only if we have any good servers. Otherwise,</span><br><span class="line">	// leave them alone for better chances of a successful sync in the future.</span><br><span class="line">	if syncKind == completeSync &#123;</span><br><span class="line">		dynaSeeds := make([]string, cluster.servers.Len())</span><br><span class="line">		for i, server := range cluster.servers.Slice() &#123;</span><br><span class="line">			dynaSeeds[i] = server.Addr</span><br><span class="line">		&#125;</span><br><span class="line">		cluster.dynaSeeds = dynaSeeds</span><br><span class="line">		debugf(&quot;SYNC New dynamic seeds: %#v\n&quot;, dynaSeeds)</span><br><span class="line">	&#125;</span><br><span class="line">	cluster.Unlock()</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure>
            
        </div>
        <footer class="article-footer">
            <a data-url="https://jpcui.github.io/wiki/2018/11/05/【mgo】mgo源码解读——cluster/" data-id="cjs5isuzw000diuuim3ethki1" class="article-share-link">Share</a>
            
            
  <ul class="article-tag-list"><li class="article-tag-list-item"><a class="article-tag-list-link" href="/wiki/tags/golang/">golang</a></li><li class="article-tag-list-item"><a class="article-tag-list-link" href="/wiki/tags/mgo/">mgo</a></li></ul>

        </footer>
    </div>
    
</article>


  


  <nav id="page-nav">
    
    <span class="page-number current">1</span><a class="page-number" href="/wiki/page/2/">2</a><a class="page-number" href="/wiki/page/3/">3</a><a class="page-number" href="/wiki/page/4/">4</a><a class="extend next" rel="next" href="/wiki/page/2/">Next &raquo;</a>
  </nav>

</section>
        
          <aside id="sidebar">
  
    

  
    
  <div class="widget-wrap">
    <h3 class="widget-title">Tags</h3>
    <div class="widget">
      <ul class="tag-list"><li class="tag-list-item"><a class="tag-list-link" href="/wiki/tags/beego/">beego</a></li><li class="tag-list-item"><a class="tag-list-link" href="/wiki/tags/bootstrap/">bootstrap</a></li><li class="tag-list-item"><a class="tag-list-link" href="/wiki/tags/consul/">consul</a></li><li class="tag-list-item"><a class="tag-list-link" href="/wiki/tags/docker/">docker</a></li><li class="tag-list-item"><a class="tag-list-link" href="/wiki/tags/elastic-job/">elastic-job</a></li><li class="tag-list-item"><a class="tag-list-link" href="/wiki/tags/eventbus/">eventbus</a></li><li class="tag-list-item"><a class="tag-list-link" href="/wiki/tags/feign/">feign</a></li><li class="tag-list-item"><a class="tag-list-link" href="/wiki/tags/fileinput/">fileinput</a></li><li class="tag-list-item"><a class="tag-list-link" href="/wiki/tags/git/">git</a></li><li class="tag-list-item"><a class="tag-list-link" href="/wiki/tags/golang/">golang</a></li><li class="tag-list-item"><a class="tag-list-link" href="/wiki/tags/guava/">guava</a></li><li class="tag-list-item"><a class="tag-list-link" href="/wiki/tags/hikari/">hikari</a></li><li class="tag-list-item"><a class="tag-list-link" href="/wiki/tags/mgo/">mgo</a></li><li class="tag-list-item"><a class="tag-list-link" href="/wiki/tags/mybatis/">mybatis</a></li><li class="tag-list-item"><a class="tag-list-link" href="/wiki/tags/php/">php</a></li><li class="tag-list-item"><a class="tag-list-link" href="/wiki/tags/redis/">redis</a></li><li class="tag-list-item"><a class="tag-list-link" href="/wiki/tags/spring/">spring</a></li><li class="tag-list-item"><a class="tag-list-link" href="/wiki/tags/spring-boot/">spring-boot</a></li><li class="tag-list-item"><a class="tag-list-link" href="/wiki/tags/spring-cloud/">spring-cloud</a></li><li class="tag-list-item"><a class="tag-list-link" href="/wiki/tags/spring-data/">spring-data</a></li><li class="tag-list-item"><a class="tag-list-link" href="/wiki/tags/服务架构/">服务架构</a></li><li class="tag-list-item"><a class="tag-list-link" href="/wiki/tags/项目管理/">项目管理</a></li></ul>
    </div>
  </div>


  
    
  <div class="widget-wrap">
    <h3 class="widget-title">Tag Cloud</h3>
    <div class="widget tagcloud">
      <a href="/wiki/tags/beego/" style="font-size: 10px;">beego</a> <a href="/wiki/tags/bootstrap/" style="font-size: 10px;">bootstrap</a> <a href="/wiki/tags/consul/" style="font-size: 10px;">consul</a> <a href="/wiki/tags/docker/" style="font-size: 12.5px;">docker</a> <a href="/wiki/tags/elastic-job/" style="font-size: 10px;">elastic-job</a> <a href="/wiki/tags/eventbus/" style="font-size: 10px;">eventbus</a> <a href="/wiki/tags/feign/" style="font-size: 10px;">feign</a> <a href="/wiki/tags/fileinput/" style="font-size: 10px;">fileinput</a> <a href="/wiki/tags/git/" style="font-size: 10px;">git</a> <a href="/wiki/tags/golang/" style="font-size: 12.5px;">golang</a> <a href="/wiki/tags/guava/" style="font-size: 10px;">guava</a> <a href="/wiki/tags/hikari/" style="font-size: 10px;">hikari</a> <a href="/wiki/tags/mgo/" style="font-size: 10px;">mgo</a> <a href="/wiki/tags/mybatis/" style="font-size: 10px;">mybatis</a> <a href="/wiki/tags/php/" style="font-size: 10px;">php</a> <a href="/wiki/tags/redis/" style="font-size: 10px;">redis</a> <a href="/wiki/tags/spring/" style="font-size: 10px;">spring</a> <a href="/wiki/tags/spring-boot/" style="font-size: 15px;">spring-boot</a> <a href="/wiki/tags/spring-cloud/" style="font-size: 20px;">spring-cloud</a> <a href="/wiki/tags/spring-data/" style="font-size: 10px;">spring-data</a> <a href="/wiki/tags/服务架构/" style="font-size: 10px;">服务架构</a> <a href="/wiki/tags/项目管理/" style="font-size: 17.5px;">项目管理</a>
    </div>
  </div>

  
    
  <div class="widget-wrap">
    <h3 class="widget-title">Archives</h3>
    <div class="widget">
      <ul class="archive-list"><li class="archive-list-item"><a class="archive-list-link" href="/wiki/archives/2019/02/">February 2019</a></li><li class="archive-list-item"><a class="archive-list-link" href="/wiki/archives/2018/11/">November 2018</a></li></ul>
    </div>
  </div>


  
    
  <div class="widget-wrap">
    <h3 class="widget-title">Recent Posts</h3>
    <div class="widget">
      <ul>
        
          <li>
            <a href="/wiki/2019/02/12/todolist/">todolist</a>
          </li>
        
          <li>
            <a href="/wiki/2018/11/05/【spring-cloud】spring-cloud-config/">【spring-cloud】spring-cloud-config</a>
          </li>
        
          <li>
            <a href="/wiki/2018/11/05/【bootstrap】file-input/">【bootstrap】file-input</a>
          </li>
        
          <li>
            <a href="/wiki/2018/11/05/【docker】杀不死的docker/">【docker】杀不死的docker</a>
          </li>
        
          <li>
            <a href="/wiki/2018/11/05/【docker】创建java容器/">【docker】创建java容器</a>
          </li>
        
      </ul>
    </div>
  </div>

  
</aside>
        
      </div>
      <footer id="footer">
    
    <div class="outer">
        <div id="footer-info" class="left alignleft">
            &copy; 2019 Sucre Cui
            <br>
            Powered by <a href="http://hexo.io/" target="_blank">Hexo</a>
        </div>
        <div class="right alignright">
            <span id="busuanzi_container_site_pv">
                <i class="fa fa-eye" title="PV"></i> <span id="busuanzi_value_site_pv"><i class="fa fa-spinner"></i></span>
                <br>
                <i class="fa fa-user" title="UV"></i> <span id="busuanzi_value_site_uv"></span>
            </span>
            <script async src="//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script>
        </div>
    </div>
</footer>
    </div>
    <nav id="mobile-nav">
  
    <a href="/wiki/" class="mobile-nav-link">Home</a>
  
    <a href="/wiki/archives" class="mobile-nav-link">Archives</a>
  
</nav>
    

<script src="//cdn.bootcss.com/jquery/2.0.3/jquery.min.js"></script>


  <link rel="stylesheet" href="/wiki/fancybox/jquery.fancybox.css">
  <script src="/wiki/fancybox/jquery.fancybox.pack.js"></script>


<script src="/wiki/js/script.js"></script>



  </div>
</body>
</html>